一、load方法:
<script src="./jquery-3.2.1.js" charset="utf-8"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#content').load('./dat.html', function (data, status) {
if (status == 'error') {
$('#content').text('404,你要的頁(yè)面去火星啦')
}
});
$('#content').load('./data.html .header,.header1', function (data) {
console.log(data);
})
//我們可以在請(qǐng)求的URL字符串后拼接一個(gè)選擇器,使用空格隔開(kāi)URL和選擇器,這樣當(dāng)load方法
//把指定的數(shù)據(jù)請(qǐng)求下來(lái)后,會(huì)根據(jù)選擇器匹配對(duì)應(yīng)的標(biāo)簽,只把匹配上的標(biāo)簽拼接進(jìn)DOM文檔流。
//如果需要使用多個(gè)選擇器作為過(guò)濾器,則多個(gè)選擇器之間使用“,”隔開(kāi)。
$('#content').load('./data.html?user=張三&pass=123 h1', function (data, status, xhr) {
console.log(xhr);
})
});
</script>
<body>
<div id="content">
</div>
</body>
load():由頁(yè)面中的標(biāo)簽對(duì)象調(diào)用,該方法被用來(lái)加載存放在服務(wù)器中的靜態(tài)文件(一般指html代碼片段),當(dāng)請(qǐng)求到這份文件后,會(huì)把文件中的數(shù)據(jù)拼接進(jìn)調(diào)用的標(biāo)簽中。
- 參數(shù)一:必選
要引入的靜態(tài)文件路徑,字符串類型,如果要發(fā)送get請(qǐng)求則將請(qǐng)求參數(shù)拼接在路徑后。 - 參數(shù)二:可選
使用post請(qǐng)求時(shí),該參數(shù)放的是傳遞的數(shù)據(jù),使用的是對(duì)象類型。 - 參數(shù)三:可選
請(qǐng)求結(jié)束時(shí)的回調(diào)函數(shù)(不管請(qǐng)求是否成功,都會(huì)觸發(fā)該函數(shù));
回調(diào)函數(shù)中有兩個(gè)參數(shù):在請(qǐng)求成功時(shí),第一個(gè)參數(shù)保存的是請(qǐng)求到的數(shù)據(jù),第二個(gè)參數(shù)保存的是“success”字符串;在請(qǐng)求失敗時(shí),第一個(gè)參數(shù)保存的是失敗原因,第二個(gè)參數(shù)保存“error”字符串。我們可以根據(jù)第二個(gè)參數(shù)內(nèi)容,判斷該次請(qǐng)求是否成功。第二個(gè)參數(shù)總共有四個(gè)狀態(tài): - success:數(shù)據(jù)從服務(wù)器成功獲取到;
- error:因?yàn)榉?wù)器響應(yīng)了錯(cuò)誤碼。導(dǎo)致數(shù)據(jù)無(wú)法獲取到;
- notmodified:數(shù)據(jù)從緩存中獲取到;
- timeout:因?yàn)槌瑫r(shí),數(shù)據(jù)無(wú)法獲取到。
二、get和post方法:
//訪問(wèn)json數(shù)據(jù)
$.get('./data.json',{
user:'張三',
pass:'123456'
},function(data,status,xhr){
console.log(data);
console.log(status);
console.log(xhr);
});
//訪問(wèn)xml數(shù)據(jù)
$.get('./data.xml',{
user:'張三',
pass:'123456'
},function(data,status,xhr){
console.log(data);
console.log(status);
console.log(xhr);
});
get():發(fā)送get請(qǐng)求的方法。
get方法直接綁定在jQuery函數(shù)中,由$直接調(diào)用。
get()方法中的參數(shù):
- 參數(shù)一:必選,請(qǐng)求的接口地址(不能添加傳遞的參數(shù));
- 參數(shù)二:可選,接口所需的參數(shù),對(duì)象類型;
- 參數(shù)三:可選,回調(diào)函數(shù),只有在請(qǐng)求成功時(shí)才會(huì)觸發(fā);
回調(diào)函數(shù)中的三個(gè)參數(shù):
1、請(qǐng)求下來(lái)的數(shù)據(jù)(json/xml),參數(shù)會(huì)根據(jù)請(qǐng)求接口類型轉(zhuǎn)化數(shù)據(jù),json轉(zhuǎn)為object類型,xml自動(dòng)轉(zhuǎn)為DOM類型。
2、請(qǐng)求狀態(tài)(success)。
3、發(fā)送當(dāng)前get請(qǐng)求的請(qǐng)求對(duì)象。 - 參數(shù)四:可選,要求請(qǐng)求的接口返回該參數(shù)指定的數(shù)據(jù)類型(xml/json/script/text);如果該接口有能力返回指定格式的數(shù)據(jù),則返回,如果沒(méi)能力,則請(qǐng)求失敗,不觸發(fā)回調(diào)函數(shù)。
post()方法參數(shù)情況和get一致,返回?cái)?shù)據(jù)也和get一致。
三、ajax方法:
ajax()使用方法:
$.ajax({
method:"get",
url:"./data.json",
data:"user=zs&passwod=123",
success:function(data){
console.log(data);
},
error:function(err){
console.log(err);
},
async:true
});
ajax()函數(shù)是jQuery中所有和ajax請(qǐng)求相關(guān)方法的底層方法,該方法內(nèi)部封裝的是原生ajax請(qǐng)求。
該方法的參數(shù)是對(duì)象類型。
- URL:接口字符串。
- data:接口參數(shù)字符串。
- method:請(qǐng)求方法字符串。
- success:當(dāng)請(qǐng)求成功時(shí)執(zhí)行的回調(diào)函數(shù),該函數(shù)參數(shù)存放請(qǐng)求結(jié)果。
- error:當(dāng)請(qǐng)求失敗時(shí)執(zhí)行的回調(diào)函數(shù),該函數(shù)的參數(shù)存放ajax請(qǐng)求對(duì)象,可以通過(guò)該對(duì)象下的status、readyState屬性值判斷失敗的原因。
使用jQuery中的ajax()方法實(shí)現(xiàn)跨域:
$.ajax({
method:"get",
url:"http://10.0.156.213/data.php",
data:'cb=?',
dataType:'jsonp',
jsonp:'cb',
success:function(data){
console.log(data);
}
});
參數(shù):
- url:要請(qǐng)求的跨域接口
- method:請(qǐng)求方法,ajax請(qǐng)求跨域接口用的是jsonp實(shí)現(xiàn)的,所以該值一定是get(可?。?。
- data:請(qǐng)求的跨域接口參數(shù),入股該接口不需要傳參,則該屬性和jsonp屬性二選一即可;該屬性值中包含一個(gè)回調(diào)函數(shù)字段,key是服務(wù)器指定的回調(diào)函數(shù)key,value是“?”
- dataType:告訴ajax方法,發(fā)送的請(qǐng)求是jsonp請(qǐng)求,而不是ajax請(qǐng)求,必須指定該屬性值為“jsonp”
- jsonp:值是服務(wù)器指定的回調(diào)函數(shù)的key值(可以和data二選一存在)
- success:請(qǐng)求成功回調(diào)函數(shù)。
四、getJSON方法:
用法:
$.getJSON('http://10.0.156.213/data.php?cb=?',function(data){
console.log(data);
})
getJSON()發(fā)送get請(qǐng)求,接受json數(shù)據(jù)
第一個(gè)參數(shù):接口url(如果接口需要參數(shù),則參數(shù)拼接在接口之后)。
第二個(gè)參數(shù):回調(diào)函數(shù),當(dāng)請(qǐng)求成功時(shí),觸發(fā)回調(diào)函數(shù),函數(shù)的第一個(gè)形參保存的是請(qǐng)求到的數(shù)據(jù)。