1. 程式人生 > >jquery中$.ajax $.get $.post 和$.getJSON的區別和用法

jquery中$.ajax $.get $.post 和$.getJSON的區別和用法

首先,.get.post其實都是.ajax.ajax中有一個type屬性,專門用來指定是get請求還是post請求的。如下:
$.ajax({
url:”路徑”,
type:”post/get”,
datatype:”json”,
//成功的回撥函式
success:function(data){
alert(“回撥函式成功了”);
},
//失敗的回撥函式
error:function(){
alert(“伺服器請求失敗”);
},

//傳送請求前呼叫,可以放一些“正在載入”之類的話
beforeSend:function(){
alert(“正在載入”);
}
});
所以無論是get請求還是post請求,都可以用ajax來寫。
下面我們來說一下get和post的區別:
1.安全性:get是通過http協議的header傳送請求,所以會將引數拼接在位址列中,所以安全性很差;
post是通過http協議的body傳送請求,位址列中並不會出現,所以相對安全;
還有一點,用get方法傳送請求會被客戶端瀏覽器快取,通過檢視歷史記錄可以檢視到使用者資訊,所以非常不安全。
2.傳送大小:get只能傳送2kb,而post一般不受限制
3.效率:get效率高,post效率低
4.get就是為了從伺服器得到資料,而post則是傳送資料
舉個例子:
.

get()使GET.get( url [, data] [, callback] )
解釋一下這個函式的各個引數:
url:string型別,ajax請求的地址。
data:可選引數,object型別,傳送至伺服器的key/value資料會作為QueryString附加到請求URL中。
callback:可選引數,function型別,當ajax返回成功時自動呼叫該函式。

.get(/login,id:12,name:zhangsan,function(data,state)alert(data);if(state==o

k)alert();elsealert(););.post()方法使用POST方式來進行非同步請求,它的語法結構為:
.post(url,[data],[callback],[type]).get()用法差不多,唯獨多了一個type引數,那麼這裡就只介紹type引數吧,其他的參考上面.get()typetypehtml,xml,jsonjsonjson.get()返回的格式一樣,都是字串的。
$.post(“/login”,{id:’123’,name:’小明’},function(data){

   },"json")

下面我們來說一下getJSON():
getJSON()和get是一樣的,都是get請求,這就決定了,傳送的data資料量不能太多,否則造成url太長接收失敗(getJSON方式是不可能有post方式遞交的)。
區別是,getJSON專門請求json資料的,而且getJSON可以實現跨域請求。語法格式如下:
getJSON(url,[data],[callback])
url:string型別, 傳送請求地址
data :可選引數, 待發送 Key/value 引數 ,同get,post型別的data
callback :可選引數,載入成功時回撥函式,同get,post型別的callback