Ajax是Asynchronous Javascript And XML的縮寫。
作用:通過Ajax可以使用Javascript語句來調用XMLHttpRequest對象,直接與伺服器進行通訊,可以在不重載頁面的情況下與伺服器交換資料。
1、建立XMLHttpRequest對象
var xhr = new XMLHttpRequest()
對於IE早期版本(IE7及以下版本)使用,new ActiveXObject("Microsoft.XMLHTTP")、new ActiveXObject("Msxml2.XMLHTTP")等方式建立對象
2、XMLHttpRequest對象常用屬性和常用方法
屬性
readystate 返回XMLHTTP請求的目前狀態碼
state 返回當前請求的HTTP狀態代碼
statusText 返回HTTP狀態代碼對應的文本
方法
onreadystatechange 監聽readystate和state狀態
open 建立串連請求
send 發送串連請求
readystate狀態代碼
0(未初始化) 對象已建立,但尚未初始化
1(初始化) 對象已建立,尚未調用send方法
2(發送資料) send方法已調用,但是當前的狀態代碼及http頭未知
3(資料傳送中) 已接收部分資料,因為響應及http頭不全,這時通過responseBody和responseText擷取部分資料會出現錯誤
4(完成) 資料接收完畢,此時可以通過responseBody和responseText擷取完整的回應資料
state常用狀態代碼
200 OK 伺服器成功返回網頁
404 Not Found 用戶端所有請求的頁面不存在
503 Service Unavailable 伺服器響應逾時
open(method,URL,flag,name,password)方法有五個參數
method參數用於指定使用什麼方式向伺服器發送HTTP請求,參數可以為get、post、head、put和delete五種
url指定伺服器的URL
flag參數用於指定提交HTTP請求方方式,true為非同步(預設),false為同步
name提交使用者名稱,可選
password提交密碼,可選
// 建立XMLHttpRequest對象
function createXHR(){
return window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
}
function Ajax(){
var xhr=new createXHR();
xhr.onreadystatechange=function(){
if(4==xhr.readystate&&200==state){
/* 成功 */
}
else{
/* 異常 */
}
}
xhr.open("get",url,true);
xhr.send();
}