1. 程式人生 > >restful規範下的ajax請求

restful規範下的ajax請求

char ajax請求 form ces 集合 param 例如 load() json


restful 四種請求
get是安全(不管操作多少遍,資源的狀態不會變)的,
get,delete,put是冪等(不管操作多少次,結果都一樣)的,
post既不安全也不冪等
put與post比較:增加操作可以使用POST或PUT,區別在於POST 是作用在一個集合資源之上的(/uri),而PUT操作是作用在一個具體資源之上的(/uri/xxx),再通俗點說,如果URL可以在客戶端確定,那麽就使用PUT,如果是在服務端確定,那麽就使用POST,比如說很多資源使用數據庫自增主鍵作為標識信息,而創建的資源的標識信息到底是什麽只能由服務端提供,這個時候就必須使用POST。


restful ajax發送請求

客戶端:



關於contentType
默認application/x-www-form-urlencoded
除默認,常見的還有:
contentType: "application/json; charset=utf-8", contentType: "text/xml",
關於get,post,put,delete請求
發送get請求,上面提到的三種方式都可以,因為get方式,參數是跟在url後邊,與Content-Type無關。
其它請求,就要考慮contentType,設置相應的值了。
關於data
當有大量參數,可以包裝成json格式,通過JSON.stringify()將其序列化進行傳輸
例如:data:JSON.stringify(paramObject),//傳遞json字符串做參數,將來在controller中用@RequestBody接收
如下:
var paramObject = {
"login_name":login_name,
"nick_name":nick_name,
"real_name":real_name,
"email":email
};
//發送Ajax請求
$.ajax({
url:"http://localhost:8888/spring5/user/"+id,
type:"put",
contentType:"application/json",//指定傳遞新的類型為json
data:JSON.stringify(paramObject),//傳遞json字符串做參數,將來在controller中用@RequestBody接收
dataType:"json",
success:function(result){
if(result.status==1){//成功
window.parent.location.reload();//刷新父窗口
}else{
layer.msg(result.msg);//提示失敗
}
}
});




服務端

@ResponseBody//將返回的Java對象轉成JSON字符串輸出 將請求傳過來的JSON字符串轉成Java對象

需要明白的是:其實2.對資源的增,刪,改,查操作,其實都可以通過GET/POST完成,不需要用到PUT和DELETE。但不符合rest規範


restful規範下的ajax請求