国产精品一区二区三区……-大杳蕉伊人欧美一本遒在饯-日本不卡一区免费在线观看-国产亚洲欧美中文字幕

400-800-9385
網(wǎng)站建設(shè)資訊詳細(xì)

網(wǎng)站前端制作之jquery ajax詳解

發(fā)表日期:2020-09-30 11:07:38   作者來源:嚴(yán)成   瀏覽:2479   標(biāo)簽:網(wǎng)站前端制作    
ajax通過 HTTP 請求加載遠(yuǎn)程數(shù)據(jù)。
jQuery 底層 AJAX 實現(xiàn)。簡單易用的高層實現(xiàn)見 $.get, $.post 等。$.ajax() 返回其創(chuàng)建的 XMLHttpRequest 對象。大多數(shù)情況下你無需直接操作該函數(shù),除非你需要操作不常用的選項,以獲得更多的靈活性。
最簡單的情況下,$.ajax()可以不帶任何參數(shù)直接使用。
注意,所有的選項都可以通過$.ajaxSetup()函數(shù)來全局設(shè)置。
如果要處理$.ajax()得到的數(shù)據(jù),則需要使用回調(diào)函數(shù)。beforeSend、error、dataFilter、success、complete。
beforeSend 在發(fā)送請求之前調(diào)用,并且傳入一個XMLHttpRequest作為參數(shù)。
error 在請求出錯時調(diào)用。傳入XMLHttpRequest對象,描述錯誤類型的字符串以及一個異常對象(如果有的話)
dataFilter 在請求成功之后調(diào)用。傳入返回的數(shù)據(jù)以及"dataType"參數(shù)的值。并且必須返回新的數(shù)據(jù)(可能是處理過的)傳遞給success回調(diào)函數(shù)。
success 當(dāng)請求之后調(diào)用。傳入返回后的數(shù)據(jù),以及包含成功代碼的字符串。
complete 當(dāng)請求完成之后調(diào)用這個函數(shù),無論成功或失敗。傳入XMLHttpRequest對象,以及一個包含成功或錯誤代碼的字符串。
$.ajax()函數(shù)依賴服務(wù)器提供的信息來處理返回的數(shù)據(jù)。如果服務(wù)器報告說返回的數(shù)據(jù)是XML,那么返回的結(jié)果就可以用普通的XML方法或者jQuery的選擇器來遍歷。如果見得到其他類型,比如HTML,則數(shù)據(jù)就以文本形式來對待。
通過dataType選項還可以指定其他不同數(shù)據(jù)處理方式。除了單純的XML,還可以指定 html、json、jsonp、script或者text。
其中,text和xml類型返回的數(shù)據(jù)不會經(jīng)過處理。數(shù)據(jù)僅僅簡單的將XMLHttpRequest的responseText或responseHTML屬性傳遞給success回調(diào)函數(shù),
'''注意''',我們必須確保網(wǎng)頁服務(wù)器報告的MIME類型與我們選擇的dataType所匹配。比如說,XML的話,服務(wù)器端就必須聲明 text/xml 或者 application/xml 來獲得一致的結(jié)果。
如果指定為html類型,任何內(nèi)嵌的JavaScript都會在HTML作為一個字符串返回之前執(zhí)行。類似的,指定script類型的話,也會先執(zhí)行服務(wù)器端生成JavaScript,然后再把腳本作為一個文本數(shù)據(jù)返回。
如果指定為json類型,則會把獲取到的數(shù)據(jù)作為一個JavaScript對象來解析,并且把構(gòu)建好的對象作為結(jié)果返回。為了實現(xiàn)這個目的,他首先嘗試使用JSON.parse()。如果瀏覽器不支持,則使用一個函數(shù)來構(gòu)建。JSON數(shù)據(jù)是一種能很方便通過JavaScript解析的結(jié)構(gòu)化數(shù)據(jù)。如果獲取的數(shù)據(jù)文件存放在遠(yuǎn)程服務(wù)器上(域名不同,也就是跨域獲取數(shù)據(jù)),則需要使用jsonp類型。使用這種類型的話,會創(chuàng)建一個查詢字符串參數(shù) callback=? ,這個參數(shù)會加在請求的URL后面。服務(wù)器端應(yīng)當(dāng)在JSON數(shù)據(jù)前加上回調(diào)函數(shù)名,以便完成一個有效的JSONP請求。如果要指定回調(diào)函數(shù)的參數(shù)名來取代默認(rèn)的callback,可以通過設(shè)置$.ajax()的jsonp參數(shù)。
注意,JSONP是JSON格式的擴展。他要求一些服務(wù)器端的代碼來檢測并處理查詢字符串參數(shù)。更多信息可以參閱 最初的文章。
如果指定了script或者jsonp類型,那么當(dāng)從服務(wù)器接收到數(shù)據(jù)時,實際上是用了<script>標(biāo)簽而不是XMLHttpRequest對象。這種情況下,$.ajax()不再返回一個XMLHttpRequest對象,并且也不會傳遞事件處理函數(shù),比如beforeSend。
 
如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請注明來自http://pdcharm.com/news/5859.html
图木舒克市| 岱山县| 凭祥市| 宁阳县| 泾阳县| 简阳市| 奈曼旗| 吴旗县| 郁南县| 盐城市| 灵台县| 阿巴嘎旗| 鄂伦春自治旗| 惠水县| 延津县| 乃东县| 阿图什市| 宿松县| 南溪县| 德钦县| 江阴市| 霍山县| 江阴市| 乾安县| 荃湾区| 山丹县| 平顶山市| 格尔木市| 布尔津县| 格尔木市| 崇州市| 随州市| 都昌县| 阿图什市| 于田县| 石城县| 陕西省| 平度市| 平罗县| 沁水县| 安阳市|