ajax請求的完整步驟

AJAX = 異步JavaScript和XML,能夠使網頁實現異步更新,達到局部更新的目的。
html

1、AJAX請求步驟以下:

一、建立XMLHttpRequest對象
ajax

var xhr;
if(window.XMLHttpRequest){
    var xhr = new XMLHttpRequest();
}
else{
    var xhr = new ActiveXObject("Microsoft.XMLHttp");
}

二、向服務器發送請求
瀏覽器

xhr.open(method,url,async);
xhr.send();//GET請求無參數,POST請求時必定要有參數

注:緩存

  • method:請求的類型 GET或POST
  • url:文件在服務器上的位置,相對位置或絕對位置
  • async:異步(true)同步(false)

三、服務器響應

responseText 得到字符串形式的相應數據

responseXML 得到XML形式的響應數據
安全

四、獲取服務器狀態碼

XMLHttpRequest有三個重要屬性:onreadystatechange,readyState ,status。
服務器

  • readyState 屬性存有 XMLHttpRequest 的狀態信息,從0-4發生變化。
    異步

    0: 請求未初始化
    1: 服務器鏈接已創建
    2: 請求已接收
    3: 請求處理中
    4: 請求已完成,且響應已就緒async

  • status
    post

    200:OK
    404:未找到頁面url

  • readyState 觸發onreadystatechange事件
xhr.onreadystatechange = function(){
    if(xhr.readystate == 4&& xhr.status == 200){
        do something;
    }
}

五、簡單的實例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function loadXMLDoc()
{
    var xhr;
    if (window.XMLHttpRequest)
    {
        //  IE7+, Firefox, Chrome, Opera, Safari 瀏覽器執行代碼
        xhr = new XMLHttpRequest();
    }
    else
    {
        // IE6, IE5 瀏覽器執行代碼
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhr.onreadystatechange=function()
    {
        if (xhr.readyState==4 && xhr.status==200)
        {
            document.getElementById("myDiv").innerHTML = xhr.responseText;
        }
    }
    xhr.open("GET","/try/ajax/ajax_info.txt",true);
    xhr.send();
}
</script>
</head>
<body>

<div id="myDiv"><h2>使用 AJAX 修改該文本內容</h2></div>
<button type="button" onclick="loadXMLDoc()">修改內容</button>

</body>
</html>

2、AJAX 中POST和 GET的區別

POST和 GET都是向服務器發送的一種請求,只是發送機制不一樣。

一、GET請求會將參數跟在url後傳遞,POST請求是做爲http消息的實體內容發送給服務器。

二、GET方式提交的數據最多隻能是1024字節。

三、GET方式請求的數據會被瀏覽器緩存起來,別人能夠讀取,如賬號、密碼等,相對於POST方式不安全。

四、在客戶端使用GET請求時,服務器使用Request.QueryString 獲取參數;在客戶端使用POST請求時,服務器使用Request.Form獲取參數。

五、當請求無反作用時(如進行搜索),即可使用GET方法;當請求有反作用時(如添加數據行),則用POST方法。

相關文章
相關標籤/搜索