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