小编典典

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

javascript

有人可以简单地说明如何使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[]: [],这可能是由于查询字符串的限制所致。


阅读 290

收藏
2020-04-25

共1个答案

小编典典

您需要使用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或更高版本的浏览器中本机可用。如果您需要传统支持,则可以使用json2

2020-04-25