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!');
}
}