天天看點

原生Ajax五個基本步驟(面試題)

AJAX的概念

AJAX的全稱是Asynchronous JavaScript And XML(異步的JS和XML),說明當初這門技術設想的最佳拍檔是JS和XML,但是後來的發展過程中,以js對象為模闆的json成為了主流。

Ajax運作原理

原生Ajax五個基本步驟(面試題)

原生Ajax五個基本步驟

1、建立ajax對象

var xhr = new XMLHttpRequest();

2、用ajax對象的open方法設定連接配接伺服器的參數

xhr.open( method,url,async);

method:請求類型,post或get

url:請求檔案的具體位址

async::是否異步(true為異步,false為同步)

3、設定發送資料的頭部,一般用來說明資料格式,如:

xhr.setRequestHeader(“Content-type”,“application/x-www-form-urlencoded”);

注: multipart/form-data(一般在發送檔案時使用,以二進制形式發送)和application/json(發送json格式資料)

4、發送請求,xhr.send(資料)

方法參數中get方法時添null或不添,推薦用post方法

5、判斷通訊狀态或接收傳回資料,這個是寫在第三個步驟回調函數裡邊的

xhr.onreadystatechange()方法和readyState屬性。
每次readyState屬性發生變化的時候就會觸發onreadystatechange事件。
readyState屬性的變化也就是XMLHttpRequest對象請求狀态的變化。
status
xmlHttp.onreadystatechange = function(){
            //判斷資料是否正常傳回
            if(xmlHttp.readyState==4&&xmlHttp.status==200){
                //6.接收資料
                var res = eval('('+xmlHttp.responseText+')');
                console.log(res);
}
}

           
原生Ajax五個基本步驟(面試題)

當xhr.readyState4&&xht.status200

時,通過xhr.responseText可擷取發送過來的資料。

執行個體

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<div id="span1">
    
</div>
</body>
</html>

<script type="text/javascript">
	window.onload = function() {
		//1、建立ajax對象
		var xhr = new XMLHttpRequest();
		// 2、綁定監聽--監聽伺服器是否已經傳回對應資料(回調函數)
		xhr.onreadystatechange=function () {
            alert(xhr.readyState);
		if(xhr.readyState==4&&xhr.status==200){
                    //5、判斷通訊狀态或接收傳回資料,這個是寫在第三個步驟回調函數裡邊的
                    var res=xhr.responseText;
                    document.getElementById("span1").innerHTML=res;
                }
        }
        //3、綁定位址,及配置其他參數
        xhr.open("POST","./ajax.php",true);
        //4、發送請求
        xhr.send();        
	}
</script>