ajax請求 與 REST風格
阿新 • • 發佈:2018-12-23
GET請求:
查詢通常都非同步。除非你依賴於之前的操作結果。async預設為:true。
資料傳送至伺服器的編碼型別contentType預設為:application/x-www-form-urlencoded,key-value的形式能夠滿足GET。
$.ajax({
type: 'GET',
dataType: "json", //json text 伺服器返回的資料型別
url: '/xx/xx?param1=1¶m2=2',
success: function (result) {
}
});
POST請求:
$.ajax({ async: false, //同步false type: 'POST', dataType: "json", //json text 伺服器返回的資料型別 contentType: "application/json", url: '/xx/xx', data: { object: JSON.stringify({data: "test"}), param: '123' }, success: function (result) { }, error: function (result) { } });
POST請求引數一般會比較多,用物件的方式簡潔方便。
目前使用REST風格,其中包括:
public enum RequestMethod {
GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE
}
我們常用的就是:GET、POST、PUT、DELETE
jQuery的ajax也都支援這幾種,HTTP規範。目前,瀏覽器支援的問題不用擔心,那是很久之前才要考慮的。
axios,對這幾種請求也都是支援。只是目前,瀏覽器版本要求較高。後續專案可以考慮使用,這裡不多說。
那麼什麼時候,使用什麼請求型別呢?
首先這個是個規範的問題,沒有明確規定查詢不能使用POST。我們儘量遵守規定,不論是從程式碼的可讀性。還是為了以後能得到,各大瀏覽器廠商或者研發者的優化支援等。
大致規範如下:
GET: 查詢資料時,使用。
POST: 新增資料的時候,使用。(非冪等)
PUT: 修改資料時,使用。(冪等,相同的資料,請求多少次,結果都是相同的。)
DELETE: 刪除資料時使用。
部分參考資料:
jQuery ajax - ajax() 方法
http://www.w3school.com.cn/jquery/ajax_ajax.asp
restful 介面 複雜物件入參
https://www.jianshu.com/p/4f9ec9172415
Axios 中文說明
https://www.kancloud.cn/yunye/axios/234845