有人可以简单地解释一下如何让 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[]: [],这可能是由于查询字符串的限制。
array: []
array[]: []
您需要JSON.stringify先将您的对象序列化为 JSON,然后指定contentType以便您的服务器理解它是 JSON。这应该可以解决问题:
JSON.stringify
contentType
$.ajax({ url: url, type: "POST", data: JSON.stringify(data), contentType: "application/json", complete: callback });
请注意,该JSON对象在支持 JavaScript 1.7 / ECMAScript 5 或更高版本的浏览器中本机可用。如果您需要旧版支持,您可以使用json2。
JSON