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语法错误,例如无法引用属性名)。