小编典典

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

all

有人可以简单地解释一下如何让 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[]: [],这可能是由于查询字符串的限制。


阅读 125

收藏
2022-08-01

共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

2022-08-01