有人可以简单地解释一下如何让 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 对象的内容?
javascript - 使用 Node.js 在 JSON 文件中写入/添加数据
ios - Swift 3 URLSession.shared() 对成员 'dataTask(wi
javascript - 错误 "Uncaught SyntaxError: Unexpected
ajax - POST JSON 失败,出现 415 Unsupported media type,
json - 使用 json.Unmarshal 与 json.NewDecoder.Decode