繁体   English   中英

跨源Ajax请求未以JSON格式传递请求有效负载

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM