Jquery的Ajax方法

ajax介紹


Ajax使用JS的XmlHttpRequest對(duì)象,在建立對(duì)象后,通過(guò)該對(duì)象的open、send等方法發(fā)送HTTP的請(qǐng)求,并注冊(cè)異步的回調(diào)函數(shù)來(lái)處理該對(duì)象調(diào)用后的返回值,在返回正確和錯(cuò)誤的情況下分別做相應(yīng)的處理。

在jquery框架中使用ajax


使用原生js的ajax訪問(wèn)一般代碼比較復(fù)雜,所以大多js框架都封裝了ajax相關(guān)的操作。如在jquery中,通過(guò)調(diào)用ajax方法,在方法中定義待傳輸數(shù)據(jù)的方法名稱(chēng)、數(shù)據(jù)內(nèi)容以及成功或失敗后的返回方法,即可完成一次ajax的請(qǐng)求響應(yīng)過(guò)程。

HTTP


ajax本質(zhì)上使用的是HTTP協(xié)議,在其中定義HTTP方法、URI、傳輸數(shù)據(jù)(一般使用JSON格式)等。

跨域訪問(wèn)


在AJAX請(qǐng)求過(guò)程中,如果包含的URI與該網(wǎng)頁(yè)URI的主域名、子域名、協(xié)議或訪問(wèn)端口不同時(shí),系統(tǒng)認(rèn)為該次訪問(wèn)屬于跨域訪問(wèn)。在默認(rèn)配置情況下,這種訪問(wèn)方式是被拒絕的。

JSONP


如果系統(tǒng)存在跨域訪問(wèn)時(shí),可使用JSONP的方式封裝跨域訪問(wèn)的AJAX請(qǐng)求,但該請(qǐng)求方式只對(duì)GET類(lèi)訪問(wèn)是有效的,它會(huì)在URL對(duì)于的數(shù)據(jù)段部分增加一個(gè)轉(zhuǎn)換處理。

在請(qǐng)求中,可以增加一個(gè)GET參數(shù),名稱(chēng)為callback,內(nèi)容為jquery自動(dòng)生成的一個(gè)唯一值參數(shù)。在收到請(qǐng)求后,將callback的值加上實(shí)際待返回的數(shù)據(jù)返回內(nèi)容。

實(shí)現(xiàn)跨域訪問(wèn)的其他方式


HTML5使用的XMLREQUEST2實(shí)現(xiàn)了跨域訪問(wèn),低于IE10不支持。

服務(wù)端改造方法.png

按照?qǐng)D中的方式,在服務(wù)器端HTTP頭部參數(shù)中增加這兩個(gè)參數(shù)后,即可實(shí)現(xiàn)跨域的HTTP請(qǐng)求,這種方法比JSONP的方式實(shí)現(xiàn)簡(jiǎn)單很多。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容