ajax請求步驟與實例(原生)

AJAX的請求步驟

(1)創建異步對象XMLHttpRequest

(2)請求數據準備,設置請求參數(請求的方法、路徑):調用XMLHttpRequest對象的open方法

    1)(無參)get方法send的參數爲null

    2)(有參)post方法send的參數爲路徑,需要在發送之前設置請求頭對參數進行解析

            xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

(3)發送:調用XMLHttpRequest對象的send方法

(4)檢測服務器狀態:爲XMLHttpRequest對象增加onreadyStatechange函數,對服務器狀態進行檢測(當狀態值readyState等於4,狀態碼status等於200則說明服務器正常運行並返回響應數據)

    1)是否完成:XMLHttpRequest對象的readyState==4

    2)是否可用:XMLHttpRequest對象的status==200

    readyState(狀態值)有五種可能的值:

        0 (未初始化): (XMLHttpRequest)對象已經創建,但還沒有調用open()方法。

        1 (載入):已經調用open() 方法,但尚未發送請求。

        2 (載入完成): 請求已經發送完成。

        3 (交互):可以接收到部分響應數據。

        4 (完成):已經接收到了全部數據,並且連接已經關閉。                

                  

    status(狀態碼)檢測的是服務器的處理狀態 https://www.runoob.com/http/http-status-codes.html

        狀態碼是由3個數字組成,分別表示不同狀態類型(5種)

        1. 1XX  表示服務器正在處理中;

        2. 2XX  表示請求成功,比如200;

        3. 3XX  重定向,表示請求不成功,客戶必須採取處理方式;304  303

        4. 4XX  客戶端錯誤,表示請求的地址或者文檔不存在,比如404;

        5. 5XX   服務端或者後臺出現問題,比如500,503……

(5)響應主體返回的文本:XMLHttpRequest對象的reponseText屬性

 

實例

一、原生方法(常考)

1、get方法進行AJAX請求

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

</head>

<body>

    <p>userName: <input type="text" name="" id="username"></p>

    <p>password: <input type="password" name="" id="password"></p>

    <button id="login">登錄</button>

    <p id="txt"></p>

    <script>

        login.οnclick=function(){

            var xhr=new XMLHttpRequest();

            xhr.open('get','test.php?user='+username.value+'&pass='+password.value);

            xhr.send(null);

            xhr.onreadystatechange=function(){

                if (xhr.readyState==4) {

                    if (xhr.status==200) {

                       txt.innerHTML=xhr.responseText;

                   }

                }

            }

        }

    </script>

</body>

</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章