傳送 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 語法錯誤,例如無法引用屬性名稱)。