關於Jquery中ajax方法data參數用法的總結
jquery手冊描述:
data
發送到伺服器的資料。將自動轉換為請求字串格式。GET 請求中將附加在 URL 後。查看 processData 選項說明以禁止此自動轉換。必須為 Key/Value 格式。
如果為數組,jQuery 將自動為不同值對應同一個名稱。如 {foo:["bar1", "bar2"]} 轉換為 '&foo=bar1&foo=bar2'。
樣本:
$.ajax({ type: "POST", url: "some.php", data: "name=John&location=Boston", success: function(msg){ alert( "Data Saved: " + msg ); }});
這裡data後面跟的參數可以用二種表式:一種是普通url傳參的寫法一樣,還有一種就是寫在json數組裡,
上面樣本data部分也可以這樣寫:data: {name:"John",location:"Boston"}。這二個用法有什麼區別?
今天在開發中發現二者用法的細微差別。第一種我們用url傳參,參數裡面如果加帶"&"這個符號的話,可能參數接收不到或不完整,如“ data: "name=John&location=Boston",”,
如果name的值是"john&smith"這樣寫可能就會有問題,我們可以用JS裡面的encodeURIComponent()方法進行轉義,
但如果用data: {name:"John",location:"Boston"}這種方式寫的話就不需要進行轉義,如果轉義的話,接收的將是轉義後的字串
jquery手冊描述:
data
發送到伺服器的資料。將自動轉換為請求字串格式。GET 請求中將附加在 URL 後。查看 processData 選項說明以禁止此自動轉換。必須為 Key/Value 格式。
如果為數組,jQuery 將自動為不同值對應同一個名稱。如 {foo:["bar1", "bar2"]} 轉換為 '&foo=bar1&foo=bar2'。
樣本:
$.ajax({ type: "POST", url: "some.php", data: "name=John&location=Boston", success: function(msg){ alert( "Data Saved: " + msg ); }});
這裡data後面跟的參數可以用二種表式:一種是普通url傳參的寫法一樣,還有一種就是寫在json數組裡,
上面樣本data部分也可以這樣寫:data: {name:"John",location:"Boston"}。這二個用法有什麼區別?
今天在開發中發現二者用法的細微差別。第一種我們用url傳參,參數裡面如果加帶"&"這個符號的話,可能參數接收不到或不完整,如“ data: "name=John&location=Boston",”,
如果name的值是"john&smith"這樣寫可能就會有問題,我們可以用JS裡面的encodeURIComponent()方法進行轉義,
但如果用data: {name:"John",location:"Boston"}這種方式寫的話就不需要進行轉義,如果轉義的話,接收的將是轉義後的字串