JavaScript-Ajax

Ajax

Ajax概念

ajax:async javascript and xml - 前端和后端的交互技術(shù)录别,是異步的js技術(shù),作用是前端跟后端進(jìn)行傳遞數(shù)據(jù)

使用js的Ajax跟服務(wù)器接口進(jìn)行交互

步驟:

一、創(chuàng)建對(duì)象

var xhr = new XMLHttpRequest()

二柬焕、設(shè)置請(qǐng)求參數(shù)

xhr.open('get', 'http://localhost:8888/test/first', true)

參數(shù)一:請(qǐng)求的方式

參數(shù)二:請(qǐng)求的地址

參數(shù)三:是否異步執(zhí)行 - 為布爾值默認(rèn)為true表示異步執(zhí)行

三欠拾、監(jiān)聽(tīng)請(qǐng)求狀態(tài)

xhr.onreadystatechange = function() {
    if(xhr.readyState === 4) {
        if(xhr.status >= 200 && xhr.status < 300) {
            var res = xhr.responseText
            console.log(res);
        }
    }
}
  1. 其中xhr.onreadystatechange是類(lèi)似綁定事件的語(yǔ)法,表示這個(gè)事件是當(dāng)ajax請(qǐng)求的狀態(tài)發(fā)生改變的時(shí)候觸發(fā)

    xhr.onreadystatechange = function() {}
    
  2. xhr.readyState表示ajax的狀態(tài)治泥,總共有5種狀態(tài)對(duì)應(yīng)五種返回值

    0 -- 表示沒(méi)有初始化,說(shuō)明還沒(méi)有創(chuàng)建對(duì)象

    1 -- 表示已經(jīng)創(chuàng)建對(duì)象但是遮精,還沒(méi)有發(fā)送請(qǐng)求

    2 -- 表示已經(jīng)發(fā)送居夹,對(duì)方已經(jīng)收到消息了,但是還沒(méi)有徹底看懂我們什么意思本冲,還有很多事情需要準(zhǔn)備

    3 -- 服務(wù)器已經(jīng)在給我們響應(yīng)信息了准脂,但是信息不完整

    4 -- 數(shù)據(jù)已經(jīng)完整了 - 可以接收到完整的數(shù)據(jù)了

  3. xhr.status判斷請(qǐng)求是否成功,成功的請(qǐng)求是以2開(kāi)頭的

            if(xhr.status >= 200 && xhr.status < 300) {
                var res = xhr.responseText
                console.log(res);
            }
             // 請(qǐng)求狀態(tài)-http狀態(tài):
            /*
            1開(kāi)頭:正在進(jìn)行中
            2開(kāi)頭:各種成功
            3開(kāi)頭:重定向-緩存
            4開(kāi)頭:客戶端錯(cuò)誤
            5開(kāi)頭:服務(wù)器錯(cuò)誤
            */
    
    
  4. 接收傳來(lái)的數(shù)據(jù)并處理

四檬洞、發(fā)送請(qǐng)求

xhr.send()來(lái)向服務(wù)器發(fā)送請(qǐng)求

Ajax的一些操作

  1. xhr.responseText

    獲取從服務(wù)器端發(fā)送過(guò)來(lái)的數(shù)據(jù)

  2. JSON.parse(json字符串)

    可以將Json字符串轉(zhuǎn)化成為數(shù)組

  3. JSON.stringify(json對(duì)象)

    json對(duì)象轉(zhuǎn)成json字符串

get請(qǐng)求參數(shù)

get請(qǐng)求:

  1. 直接在瀏覽器中輸入地址敲回車(chē)
  2. 在頁(yè)面中點(diǎn)擊了a標(biāo)簽跳轉(zhuǎn)到另一個(gè)頁(yè)面狸膏,顯示另一個(gè)頁(yè)面中的內(nèi)容,顯示內(nèi)容也是要發(fā)送請(qǐng)求的 - get
  3. 引入文件的請(qǐng)求也是get請(qǐng)求添怔,link引入css湾戳、script引入js、img引入圖片广料、iframe引入html頁(yè)面
  4. form表單默認(rèn)能提交院塞,默認(rèn)提交方式也是get
  5. 通過(guò)ajax發(fā)送get請(qǐng)求
var xhr = new XMLHttpRequest;
xhr.open('post','http://localhost:8888/test/third?username=zhangsan&age=18');
xhr.send()
xhr.onreadystatechange = function(){
    if(xhr.readyState === 4){
        if(xhr.status>=200 && xhr.status<300){
            var res = xhr.responseText;
            // 將json字符串轉(zhuǎn)成json對(duì)象
            // res = JSON.parse(res)
            console.log(res);
        }
    }
}

POST請(qǐng)求參數(shù)

var xhr = new XMLHttpRequest;

xhr.open('post','http://localhost:8888/test/fourth');
// post請(qǐng)求的參數(shù)要放在send方法中作為參數(shù)的 - 必須的字符串
// post請(qǐng)求要帶參數(shù)必須在send之前設(shè)置 頭信息
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
// 數(shù)據(jù)在傳送之前需要進(jìn)行編碼
xhr.send('name=王五&age=666')
xhr.onreadystatechange = function(){
    if(xhr.readyState === 4){
        if(xhr.status>=200 && xhr.status<300){
            var res = xhr.responseText;
            res = JSON.parse(res)
            console.log(res);
        }
    }
}

Json

Json文件只能有一個(gè)數(shù)組或者一個(gè)對(duì)象對(duì)象中的鍵必須是雙引號(hào)性昭,如果值是字符串也必須是雙引號(hào)拦止,最后一項(xiàng)不能在最后加逗號(hào)。(Json中沒(méi)有注釋)

{
    "people": {
        "name": "張三",
        "age": 12,
        "children": []
    },
    "dog": "小狗"
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末糜颠,一起剝皮案震驚了整個(gè)濱河市汹族,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌其兴,老刑警劉巖顶瞒,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異元旬,居然都是意外死亡榴徐,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)匀归,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)坑资,“玉大人,你說(shuō)我怎么就攤上這事穆端「ぶ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵体啰,是天一觀的道長(zhǎng)攒巍。 經(jīng)常有香客問(wèn)我嗽仪,道長(zhǎng),這世上最難降的妖魔是什么柒莉? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任闻坚,我火速辦了婚禮,結(jié)果婚禮上兢孝,老公的妹妹穿的比我還像新娘鲤氢。我一直安慰自己,他們只是感情好西潘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布卷玉。 她就那樣靜靜地躺著,像睡著了一般喷市。 火紅的嫁衣襯著肌膚如雪相种。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,698評(píng)論 1 305
  • 那天品姓,我揣著相機(jī)與錄音寝并,去河邊找鬼。 笑死腹备,一個(gè)胖子當(dāng)著我的面吹牛衬潦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播植酥,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼镀岛,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了友驮?” 一聲冷哼從身側(cè)響起漂羊,我...
    開(kāi)封第一講書(shū)人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎卸留,沒(méi)想到半個(gè)月后走越,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡耻瑟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年旨指,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喳整。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谆构,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出算柳,到底是詐尸還是另有隱情低淡,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布瞬项,位于F島的核電站蔗蹋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏囱淋。R本人自食惡果不足惜猪杭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望妥衣。 院中可真熱鬧皂吮,春花似錦、人聲如沸税手。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)芦倒。三九已至艺挪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間兵扬,已是汗流浹背麻裳。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留器钟,地道東北人津坑。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像傲霸,于是被迫代替她去往敵國(guó)和親疆瑰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

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

  • 概述 背景 在了解 AJAX 之前我們可以簡(jiǎn)單的認(rèn)為「JavaScript 能力有限」昙啄,因?yàn)樵诖酥?Web 平臺(tái)...
    白棠閱讀 169評(píng)論 0 0
  • 一乃摹、XMLHttpRequest對(duì)象 IE7+、Firefox跟衅、Opera孵睬、Chrome 和Safari 都支持原...
    Tom36閱讀 526評(píng)論 0 1
  • http://www.w3school.com.cn/jquery/ajax_ajax.asp AJAX(Asyn...
    zhulichao閱讀 107評(píng)論 0 0
  • jQuery 中的 AJAX jQuery 中有一套專(zhuān)門(mén)針對(duì) AJAX 的封裝,功能十分完善伶跷。參考網(wǎng)址:jQuer...
    白棠閱讀 317評(píng)論 0 0
  • Ajax 表單提交 在HTML中提供了表單提交的功能掰读,我們可以通過(guò)表單把數(shù)據(jù)從前臺(tái)提交到后臺(tái) 在HTML的DOM中...
    羊烊羴閱讀 713評(píng)論 0 4