[英]Submit payload data as a non json format with Ext.ajax.Request
[英]Cross origin ajax request does not pass Request Payload in JSON format
我正在编写一个Chrome扩展程序来进行服务呼叫。
当我发出相同的原始POST ajax请求时,我的数据对象将以JSON格式传递:
$.ajax(sameOriginURL, {
data : {
"foo1": "bar1",
"foo2": "bar2"
},
dataType: "json",
headers: { 'Content-Type':'application/json'}
})
在chrome调试器中,当我看到发布请求时,请求有效负载显示为:
{ContentType: "JSON", foo1: "bar1", foo2: "bar2"}
但是当我对跨源请求执行相同操作时(在那个请求中插入crossOriginURL代替sameOriginURL),在chrome调试器中,发布请求显示为请求有效载荷,如下所示:
foo1=bar1&foo2=bar2
我正在调用的服务并不喜欢那样,因此会引发序列化异常。 如何将我的请求有效内容作为JSON对象传递。
在这里找到了答案: JQuery Post发送表单数据而不是JSON
我要做的就是用JSON.stringify封装我的数据对象,它可以正常工作!
$.ajax({
type: 'POST',
url: '<url>',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: JSON.stringify(object)
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.