第一步:得到XMLHttpRequest
得到XMLHttpRequest,編寫創建XMLHttpRequest對象的函數
function createXMLHttpRequest() {
try {
return new XMLHttpRequest();
} catch (e) {
alert("您的瀏覽器不支持");
throw e;
}
}
第二步:打開與服務器的連接:
xmlHttp.open():用來打開與服務器的連接,它有三個參數
請求方式:GET或POST
請求的URL:指定服務器端資源,例如/Web/XXXServlet
請求是否同步:如果true表示發送異步請求,否則是同步請求
xmlHttp.open("GET", "/Web/XXXServlet", true);
第三步:發送請求
xmlHttp.send(null):如果不給可能造成部分瀏覽器無法發送
*參數:就是請求體內容,如果是GET請求,必須給出null
第四步:
在xmlHttp對象的一個事件上註冊監聽器:onreadystatechange
xmlHttp對象一共有5個狀態
0狀態:剛創建還沒有調用open()方法
1狀態:請求開始,調用了open()方法,但是還沒有調用send()方法
2狀態:調用完了send()方法了
3狀態:服務器已經開始響應,但不表示響應結束
4狀態:服務器響應結束(我們主要關注這個狀態)
得到xmlHttp對象的狀態:var state = xmlHttp.readyState;
得到服務器響應的狀態碼:var status = xmlHttp.status;
得到服務器響應的內容:
var content = xmlHttp.responseText;//得到服務器的響應的文本格式的內容
var content = xmlHttp.responseXML;//得到服務器的響應的xml響應的內容,它是Document對象了!
xmlHttp.onreadystatechange = function() {//xmlHttp的5種狀態都會調用本方法
<span style="white-space:pre"> </span>if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {//雙重判斷:判斷是否爲4狀態,而且還要判斷是否爲200
<span style="white-space:pre"> </span>// 獲取服務器的響應內容
<span style="white-space:pre"> </span>var text = xmlHttp.responseText;
<span style="white-space:pre"> </span>}
};