面試 | Ajax進(jìn)階---JQuery中的Ajax

我們都知道在原生js中,需要使用Ajax異步請(qǐng)求,就必須要手寫一段獲得XMLHttpRequest對(duì)象的函數(shù),開始寫幾次十幾次還是能當(dāng)練練手寫代碼的能力,
然而你每個(gè)項(xiàng)目都需要去寫得時(shí)候你就會(huì)覺得很痛苦。而且原生js代碼寫Ajax還有幾個(gè)屬性個(gè)API你是少不了的!

例如:
open() - 請(qǐng)求方式(get/post)和寫入請(qǐng)求到那個(gè)php中。
setRequestHeader() - 如果你選擇的請(qǐng)求方式為post,還要寫一段坑爹的字符串參數(shù)("Content-Type","application/x-www-form-urlencoded")
send() - 如果你選擇的請(qǐng)求方式是get,參數(shù)則為null,如果選擇的是post,參數(shù)格式是"key=value"
onreadystatechange - 事件,當(dāng)服務(wù)器端的狀態(tài)改變時(shí),會(huì)觸發(fā)該事件
對(duì)應(yīng)的服務(wù)器端狀態(tài)屬性
readyState - 請(qǐng)求狀態(tài)(0-4)
status - 狀態(tài)碼

每一次的請(qǐng)求都需要寫這一坨代碼,簡直是惡心,但是我們有jQuery這一個(gè)功能強(qiáng)大的js庫,能幫我們省去了很多代碼,我們來看看jQuery中有哪些API能
讓我們快捷的使用Ajax

主要的API有六個(gè):
$.ajax()
$().load()
$.get()
$.post()
$.getscript()
$.getJSON()

因?yàn)楸举N吧沒有php的運(yùn)行環(huán)境,所以只能看代碼自己去理解的去看一些jQuery手冊(cè),綜合去自己聯(lián)系

首先是第一個(gè)API,$.ajax()

這是一個(gè)參數(shù)最多最復(fù)雜的一個(gè)API

image

第二個(gè)API,$().load()
這個(gè)API可以說是最簡單的一個(gè)API,但使用范圍很受限制
注意

    • 服務(wù)器端響應(yīng)的數(shù)據(jù)自動(dòng)寫入到<div>元素
    • 現(xiàn)象的原因 - div元素調(diào)用load()方法
    • load()方法的請(qǐng)求類型
    • 沒有請(qǐng)求數(shù)據(jù)時(shí),請(qǐng)求類型是GET
    • 發(fā)送請(qǐng)求數(shù)據(jù)時(shí),請(qǐng)求類型是POST
    • load()方法的請(qǐng)求類型由是否發(fā)送請(qǐng)求數(shù)據(jù)來決定
    • load()方法接收服務(wù)器端的響應(yīng)數(shù)據(jù)
    • 是以字符串類型(HTML格式)來接收
image

第三第四個(gè)API的使用方式一樣,所以只舉例其中一個(gè),$.get()
注意:

  • 和$().load()不同的是可以選擇什么樣的請(qǐng)求方式
  • dataType有三種不同的格式
    • 默認(rèn)html
    • xml - XML格式
    • json - JSON格式
  • data - 可選,設(shè)置當(dāng)前Ajax請(qǐng)求的數(shù)據(jù)
    • 格式必須是key/value格式
  • data - 可選,設(shè)置當(dāng)前Ajax請(qǐng)求的數(shù)據(jù)
  • callback - 可選,當(dāng)前Ajax請(qǐng)求成功后的回調(diào)函數(shù)
    • 該回調(diào)函數(shù)的形參(data)就是服務(wù)器端響應(yīng)的數(shù)據(jù)內(nèi)容
    • callback中的data的形成在這個(gè)API中返回的直接是Object{key:value}這樣的格式
image
?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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