使用 jQuery 的 $.ajax 函数时,经常会遇到意外行为,数据会自动以 JSON 形式发送转换为查询字符串。如果您的应用程序依赖于接收实际的 JSON 对象,这可能会出现问题。
第一直觉是设置将“dataType”属性设置为“json”以指定预期的数据类型。但是,这仅规定了服务器期望的数据类型,而不是您发送给服务器的数据类型。
解决这个问题,你需要使用 JSON.stringify 将你的 JavaScript 对象序列化为 JSON 字符串。此外,您必须将“contentType”属性设置为“application/json”,以指示服务器发送的数据是 JSON。
$.ajax({ url: url, type: "POST", data: JSON.stringify(data), contentType: "application/json", complete: callback });
现代浏览器提供原生 JSON 功能。但是,如果需要旧版支持,则可以使用 json2 库来模拟旧环境的 JSON 行为。
以上是如何使用 jQuery 的 $.ajax 发送 JSON 数据而不进行查询字符串转换?的详细内容。更多信息请关注PHP中文网其他相关文章!