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