AJAX學(xué)習(xí)筆記

1. 用XMLHttpRequest發(fā)送請(qǐng)求

button.addEventListener('click',function(){
    let request = new XMLHttpRequest()
    request.open('GET','/xxx')
    request.send()
})

2. 用console.time();console.timeEnd()可以計(jì)算執(zhí)行代碼的用時(shí)。

3. mime type 指的是發(fā)送請(qǐng)求的格式

4. 請(qǐng)求的5種狀態(tài)

[圖片上傳失敗...(image-f78ebd-1553521516463)]

5. 如何查看請(qǐng)求所處的狀態(tài)

request.readyState // 0,1,2,3,4

6. 監(jiān)聽(tīng)請(qǐng)求事件的狀態(tài)碼的改變

request.onreadystatechange = function(){
    // 請(qǐng)求事件狀態(tài)碼改變時(shí)就執(zhí)行這段代碼
}

7. 如何查看請(qǐng)求的HTTP狀態(tài)碼?

request.staus

8. 如何拿到響應(yīng)的第四部分的呢?也就是響應(yīng)體

request.responseText

9. JSON

JSON是一門(mén)新的語(yǔ)言。
JSON有string、number、object、array、true、false、null,沒(méi)有undefined、function
JSON的string必須要用雙引號(hào)

"yejianqiang"
{"name": "yejianqiang"}
["a","b","c"]
{
    "note":{
        "to": "小谷",
        "from": "方方",
        "heading": "打招呼",
        "content": "hi"
    }
}

10. 把符合JSON語(yǔ)法的字符串轉(zhuǎn)換為JS對(duì)應(yīng)的值

let string = request.responseText
let object = window.JSON.parse(string)

11. CORS:跨資源共享

// 在ajax實(shí)現(xiàn)CORS,在server.js上加上一句
response.setHeader('Access-Control-Allow-Orign','http://yjq.com:8001')
// 意思是允許yjq.com:8001允許它可以使用ajax來(lái)發(fā)送請(qǐng)求
response.setHeader('Access-Control-Allow-Orign','*')
// 給所有網(wǎng)站允許跨域請(qǐng)求

12. AJAX是什么?

通過(guò)JavaScript異步通信,從服務(wù)器獲取XML文檔從中提取數(shù)據(jù),再更新當(dāng)前網(wǎng)頁(yè)的對(duì)應(yīng)部分,而不用刷新整個(gè)頁(yè)面。后來(lái)ajax就成了JavaScript腳本發(fā)起HTTP通信的代名詞,也就是說(shuō),只要用腳本發(fā)起通信,就可以叫做ajax通信。
具體來(lái)說(shuō),ajax包括以下幾個(gè)步驟:
1. 創(chuàng)建XMLHttpRequest實(shí)例
2. 發(fā)出HTTP請(qǐng)求
3. 接收服務(wù)器傳回的數(shù)據(jù)
4. 更新網(wǎng)頁(yè)數(shù)據(jù)
只有協(xié)議、端口、域名一模一樣才允許發(fā)ajax請(qǐng)求

 button.addEventListener('click',function(){
            let request = new XMLHttpRequest()
            request.open('GET','/xxx')
            request.send()
            request.onreadystatechange = function(){
                if(request.readyState === 4){
                    // 請(qǐng)求的狀態(tài)碼為4
                    if(request.status >= 200 && request.status < 300){
                        let string = request.responseText
                        let object = window.JSON.parse(string)
                        console.log(object.note.name)
                    }else if(request.status >= 300){
                        console.log("請(qǐng)求失敗")
                    }
                }
            }
            
        })
?著作權(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)容