gpt4 book ai didi

javascript - 跨源ajax请求未传递JSON格式的Request Payload

转载 作者:行者123 更新时间:2023-11-28 19:41:50 26 4
gpt4 key购买 nike

我正在编写一个进行服务调用的 Chrome 扩展。

当我发出同源 POST ajax 请求时,我的数据对象以 JSON 格式传递:

 $.ajax(sameOriginURL, {
data : {
"foo1": "bar1",
"foo2": "bar2"
},
dataType: "json",

headers: { 'Content-Type':'application/json'}
})

在 Chrome 调试器中,当我看到 post 请求时,请求负载显示为:

 {ContentType: "JSON", foo1: "bar1", foo2: "bar2"}

但是当我对跨源请求执行相同操作时(在该请求中插入 crossOriginURL 代替 sameOriginURL),在 chrome 调试器中,post 请求显示的请求负载如下:

foo1=bar1&foo2=bar2

而我调用的服务不喜欢这样,因此它会引发序列化异常。如何将我的请求负载作为 JSON 对象传递。

最佳答案

在这里找到了答案:JQuery Post sends form data and not JSON

我所要做的就是用 JSON.stringify 包装我的数据对象,它就成功了!!

$.ajax({
type: 'POST',
url: '<url>',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: JSON.stringify(object)
});

关于javascript - 跨源ajax请求未传递JSON格式的Request Payload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24900174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com