XMLHttpRequest对象的几种状态和几个重要属性以及常用的方法

来源:互联网 发布:平板电脑赚钱软件 编辑:程序博客网 时间:2024/05/29 13:31

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

 

原创粉丝点击