jquery中$.ajax $.get $.post 和$.getJSON的區別和用法
首先,
$.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則是傳送資料
舉個例子:
解釋一下這個函式的各個引數:
url:string型別,ajax請求的地址。
data:可選引數,object型別,傳送至伺服器的key/value資料會作為QueryString附加到請求URL中。
callback:可選引數,function型別,當ajax返回成功時自動呼叫該函式。
$.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