发送 JSON 数据
jQuery 使得处理 jSON 响应变得轻松,但是当给定的请求希望你以 JSON 格式发送数据时,需要做更多的工作 :
$.ajax("/json-consuming-route", {
data: JSON.stringify({author: {name: "Bullwinkle J. Moose",
email: "bullwinkle@example.com"} }),
method: "POST",
contentType: "application/json"
});
注意我们为我们发送的数据指定了正确的 contentType
; 这是一个很好的做法,可能是你要发布的 API 所要求的 - 但它也有指示 jQuery 不执行%20
到+
的默认转换的副作用,如果剩下 contentType
它会做在 application/x-www-form-urlencoded
的默认值。如果由于某种原因必须将 contentType 设置为默认值,请务必将 processData
设置为 false 以防止这种情况发生。
这里可以避免对 JSON.stringify
的调用,但是使用它可以让我们以 JavaScript 对象的形式提供数据(从而避免令人尴尬的 JSON 语法错误,例如无法引用属性名称)。