ajax

步驟

1. 創(chuàng)建ajax對象

  • XMLHttpRequest,該對象是有兼容問題的,在低版本的ie瀏覽器中不支持,標(biāo)準(zhǔn)下最新XMLHttpRequest是XMLHttpRequest2
  • 低版本ie下使用:ActiveXObject('Microsoft.XMLHTTP')
let xhr = null;
if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
} else {
    xhr = new ActiveXObject('Microsoft.XMLHTTP');
}

2. 設(shè)置請求參數(shù)

  • 第一個參數(shù):請求方式埃仪,也就是http請求方式:get瘫拣、post
  • 第二個參數(shù):請求地址亚再,url
  • 第三個參數(shù):是否異步無阻塞鼠锈,true表示異步無阻塞
xhr.open('get', '/checkusername?username=' + this.value, false);

如果是post請求的話闪檬,必須設(shè)置頭信息

xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");

3. 發(fā)送請求

當(dāng)get請求時

xhr.send();

當(dāng)通過post發(fā)送請求時,用到xhr.send()购笆,括號里寫要發(fā)送的數(shù)據(jù)粗悯,必須以鍵值對的形式來發(fā)送數(shù)據(jù)

xhr.send('username=haha&age=13');

4. 監(jiān)聽返回

  • onload屬性是標(biāo)準(zhǔn)的XMLHttpRequest才有的事件
  • 低版本瀏覽器不支持,在標(biāo)準(zhǔn)瀏覽器下(XMLHttpRequest2)同欠,該對象還有其他的一些相關(guān)事件:error,loaded,progress,abort
  • 低版本瀏覽器使用onreadystatechange事件样傍,這個事件在標(biāo)準(zhǔn)瀏覽器也是存在的
  • onreadystatechange:
    • 屬性:readyState
      • ajax的工作狀態(tài)
      • 0:初始化
      • 1:調(diào)用send方法后(請求發(fā)出以后)
      • 2:請求已經(jīng)被接收處理
      • 3:客戶端接收到響應(yīng),但是內(nèi)容還不一定完成了解析
      • 4:解析完成
xhr.onload = function() {
    if(xhr.readyState == 4 && xhr.status == 200) {
       console.log(xhr.responseText); 
    }
}

readyState

用來描述 從xhr創(chuàng)建開始铺遂,到整個請求完成铭乾,這個完整生命周期
只要當(dāng)readyState為4的時候,才表示返回的數(shù)據(jù)是可以真正使用的

status

status是表示服務(wù)端返回的狀態(tài)碼娃循。
一般而言炕檩,當(dāng)服務(wù)端返回200的時候,才表示一切ok捌斧。

我們在獲取返回結(jié)果的時候笛质,就增加了一個判斷 xhr.status == 200。

responseText

在web開發(fā)中捞蚂,服務(wù)端和瀏覽器端交換數(shù)據(jù)妇押,只有一種類型 --- 字符串
而responseText就是用來接受服務(wù)端返回的字符串。

有三種字符串表現(xiàn)形式:

  • 純文本
  • html字符串
  • json字符串
    • 可以使用JSON.parse()把json字符串轉(zhuǎn)化成json對象

注意

在get請求的時候
如果遇到= 和 & 這些特殊符號 或者中文(IE下)
則需要用encodeURIComponent進(jìn)行轉(zhuǎn)碼

let a = encodeURIComponent(this.username);

建議 將 send方法 寫在最后面

JQ 的 ajax

$.ajax({
    url: '請求地址',
    type: 'get',//get姓迅、post
    async: 'true',//默認(rèn)為true異步
    data: '發(fā)送的數(shù)據(jù)',
    datatype: 'json',//返回的數(shù)據(jù)格式
    success(res){
        //請求成功后的回調(diào)函數(shù)
    },
    error(err){
        //請求失敗的回調(diào)函數(shù)
    },
    timeout: 1000,//設(shè)置請求超時的毫秒值
})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末敲霍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子丁存,更是在濱河造成了極大的恐慌肩杈,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件解寝,死亡現(xiàn)場離奇詭異扩然,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)聋伦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門夫偶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人觉增,你說我怎么就攤上這事兵拢。” “怎么了逾礁?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵说铃,是天一觀的道長。 經(jīng)常有香客問我,道長截汪,這世上最難降的妖魔是什么疾牲? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮衙解,結(jié)果婚禮上阳柔,老公的妹妹穿的比我還像新娘。我一直安慰自己蚓峦,他們只是感情好舌剂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著暑椰,像睡著了一般霍转。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上一汽,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天避消,我揣著相機(jī)與錄音,去河邊找鬼召夹。 笑死岩喷,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的监憎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤井氢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后肉迫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年笤虫,在試婚紗的時候發(fā)現(xiàn)自己被綠了琼蚯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片遭庶。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡翎苫,死狀恐怖煎谍,靈堂內(nèi)的尸體忽然破棺而出龙屉,到底是詐尸還是另有隱情转捕,我是刑警寧澤瓜富,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布谤辜,位于F島的核電站丑念,受9級特大地震影響结蟋,放射性物質(zhì)發(fā)生泄漏嵌屎。R本人自食惡果不足惜宝惰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一尊残、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧顷扩,春花似錦屎即、人聲如沸技俐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仇穗。三九已至纹坐,卻和暖如春耘子,著一層夾襖步出監(jiān)牢的瞬間谷誓,已是汗流浹背捍歪。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留弓摘,地道東北人韧献。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓嚷炉,卻偏偏與公主長得像渊啰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子申屹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容