有人可以简单地说明如何使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