XMLHttpRequest物件的幾種狀態和幾個重要屬性以及常用的方法
XMLHttpRequest的幾種狀態:
0: 物件沒有完成初始化
1: 物件開始傳送請求
2: 物件的請求傳送完成
3: 物件開始讀取伺服器響應
4: 物件讀取伺服器響應結束
1.onreadystatechange 指定XMLHttpRequest物件狀態改變時的事件處理函式
2.readyState XMLHttpRequest的處理狀態
3.status 伺服器返回的狀態碼 只有狀態為4的時候才有返回值
readyState改變時,onreadystatechange都會被觸發
function createRequest()
function xxx() js進入的方法,裡面會用到createRequest和disResult
function disResult() XMLHttpRequest的狀態處理函式
function createRequest()
{
try{
httpRequest=new XMLHttpRequest();
}catch(trymicrosoft)
{
try{
httpRequest=new ActiveXObject("Msxml2.XMLHTTP");
}catch(othermicrosoft)
{
try{
httpRequest=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(failed)
{
httpRequest=false;
}
}
}
if(!httpRequest)
{
alert("err Happend!");
return null;
}
return httpRequest;
}
function getBackInfo()
{
createRequest();
var username=document.getElementById("username").value;
alert(username);
httpRequest.onreadystatechange=disResult;//隱性的迴圈
var url='checkUser.jsp?username='+username;
httpRequest.open("POST",url,"true");
//下面相當於是一個隱性的迴圈,在函式中規定只有都接收完畢資料後才做處理
//onreadystatechange有5個值:
// 0:未初始化
// 1:初始化
// 2:傳送資料
// 3:接收資料中
// 4:資料接收完畢
//另外還要注意就是在註冊回撥函式onreadystatechange時,後面的函式不能夠帶引數
//如下disResult是一個函式,不能夠帶參。
httpRequest.send(null);
}
function disResult()
{
/**
1.一定要確定readystate==4的完成狀態才做下面的事,否則會在建立連線即
readystate==1的
時候就開始,然後會在readystate==2,readystate==3,readystate==4的時候都會執行,不信
你可以alert("")一個提示資訊試試。
2.伺服器通知完成了,並且還要保證是正確完成的,得到的是我們需要的結果才
能夠繼續,這裡
常用響應碼有:
200:成功執行
401:未授權
403:禁止
404:沒有找到檔案
*/
if(httpRequest.readystate==4)
{
if(httpRequest.status==200)
{
//一切都OK了,那就該用Javascript去執行你想要的動作了。
document.getElementById("disCheckResult").value=httpRequest.responseText;
alert('done');
}
else
{
alert('Something Wrong has Happend!');
}
}