javascript - 如何使用 $.ajax 发送 JSON 而不是查询字符串?

有人可以简单地解释一下如何让 jQuery 发送实际的 JSON 而不是查询字符串吗?

$.ajax({
    url      : url,
    dataType : 'json', // I was pretty sure this would do the trick
    data     : data,
    type     : 'POST',
    complete : callback // etc
});

这实际上会将您精心准备的 JSON 转换为查询字符串。恼人的事情之一是对象中的任何 array: [] 都会被转换为 array[]: [],这可能是由于查询字符串的限制。

最佳答案

您需要使用 JSON.stringify首先将您的对象序列化为 JSON,然后指定 contentType 以便您的服务器理解它是 JSON。这应该可以解决问题:

$.ajax({
    url: url,
    type: "POST",
    data: JSON.stringify(data),
    contentType: "application/json",
    complete: callback
});

请注意,JSON 对象在支持 JavaScript 1.7/ECMAScript 5 或更高版本的浏览器中 native 可用。如果您需要旧版支持,您可以使用 json2 .

https://stackoverflow.com/questions/12693947/

相关文章:

json - 如何在 Node.js 中记录 JSON 对象的内容?

json - 你如何表示一个 JSON 字符串数组?

javascript - 使用 Node.js 在 JSON 文件中写入/添加数据

ios - Swift 3 URLSession.shared() 对成员 'dataTask(wi

javascript - 错误 "Uncaught SyntaxError: Unexpected

json - 使用 Swift 读取 JSON 文件

ajax - POST JSON 失败,出现 415 Unsupported media type,

json - 使用 json.Unmarshal 与 json.NewDecoder.Decode

json - 使用jq依次解析并显示一个json中的多个字段

json - 在 mongodb 中使用 ISODate 进行日期查询似乎不起作用