jqueryAjax在客戶端發送請求的方式


get請求方式:

$.get函數,發起一個get請求,

//第一個參數是請求的url地址,

//第二個參數是請求參數,可以是一個urlencode過的字符串,也可以是
//一個對象,如果是對象jquery會自動把這個對象轉為urlencode字符串

//第三個參數是請求成功時的回調函數,這個函數有三個參數,第一個
//參數res是請求返回的數據(jquery會自動判斷數據類型,例如,如果
//是json,則會自動將json解析為對象,如果是普通文本,則res就是
//普通的字符串),第二個參數表示請求狀態,和狀態碼對應。第三個參
//數是jqeury加工之后的XHR對象(如果需要獲得響應頭中的數據等,
//就需要通過XHR獲得)。第二個和第三個參數通常不需要。

//第四個參數表示請求的數據類型,這個參數通常不需要寫,因為jquery
//能夠自動判斷數據類型。

$.get("/getAPI",{
name:"huge",
age:28
},function(res,statusText,jqXHR){
alert(res.msg);
alert(statusText);
alert(jqXHR.getAllResponseHeaders());
//alert(jqXHR.getResponseHeader("Content-Length"));
});

post的請求方式:

$.post("/postAPI",{
name:"sun",
age:10
},function(res){
alert(res.msg);
});

自定義請求類型的Ajax的請求方式:

//$.ajax 是一個jquery底層函數,用於發送ajax請求,使用起來不
//如.get和.post方便,但是功能全,能夠設置請求的每一個細節。

//$.ajax函數的參數是一個對象,對象中的屬性用於配置本次請求。

$.ajax({
//請求類型
type:"get",
//請求地址
url:"/getAPI",
//請求是否異步,true就是異步,默認為true
async:true,
//設置期望服務器返回的數據類型(添加在請求頭中)
accepts:{
data1:"text/json",
data2:"application/json"
},
dataType:"json",
//請求發送之前執行的回調函數,常用於設置請求頭內容
beforeSend:function(jqXHR){
console.log("請求將要發送");
jqXHR.setRequestHeader("sunhuayu","28");
},
//本次請求是否緩存,如果對請求緩存,那么下次再請求這個url時,
//就不會再發起請求,而是用之前的緩存數據作為請求數據。
cache:false,
//設置請求的所有回調函數中的上下文,簡單的說就是這只回調函數
//中this指針指向的對象是誰。設置為window后,將來回調函數調用
//時,其中的this就是window。
context:window,
//設置本次請求的參數,如果是一個對象或數組,則會自動轉為
//urlencode字符串。
data:{
name:"sunhuayu",
age:8
},
//請求數據返回時,請求成功回調函數執行之前,對請求數據的一個
//預處理函數,通常在這個函數中進行解析,函數的返回值會交給
//jquery進一步處理(當做res交給success函數)。
dataFilter:function(data,type){
console.log("請求收到數據了,這是數據預處理函數,在請求成功之前調用,得到的數據是"+data+",類型是"+type);
return data;
},
//請求失敗時的回調函數。
error:function(jqXHR,textStatus){
console.log("請求失敗,原因:"+textStatus);
},
//本次請求是否觸發全局ajax事件。
global:true,
//設置請求頭,會覆蓋掉beforSend中設置的相同鍵。
headers:{
student:"sunhuayu"
},
//請求成功時的回調函數,效果同$.get函數的回調函數。
success:function(res,textStatus,jqXHR){
alert("請求成功,數據為:"+res.msg);
},
//設置本次請求的超時時間限制。(請求發起后,10秒之內還沒有
//請求完成,就作為請求失敗處理)
timeout:3*1000

});

其中的有些參數設置根據自己的需要進行改變。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM