ajax实现异步请求的过程

var xhr;
        xhr = new XMLHttpRequest(); //创建一个异步对象
        xhr.open("Get", "test.ashx", true);   //Get方式括号中的三个参数分别为:1.发送请求的方式 2.样请求的页面 3.是否异步
 //xhr.open("post","test.ashx",true);
 //xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); Post方式发送数据

 
//这个回调函数主要用来检测服务器是否把数据返回给异步对象
 xhr.setRequestHeader("If-Modified-Since","0");  //设置浏览器不使用缓存
        xhr.onreadystatechange = function () {
            if (xhr.readystate == 4) {
  //readyState属性指出了XMLHttpRequest对象在发送/接收数据过程中所处的几个状态。XMLHttpRequest对象会经历5种不同的状态。
  //0:未初始化。对象已经创建,但还未初始化,即还没调用open方法;
  //1:已打开。对象已经创建并初始化,但还未调用send方法;
  //2:已发送。已经调用send 方法,但该对象正在等待状态码和头的返回;
  //3:正在接收。已经接收了部分数据,但还不能使用该对象的属性和方法,因为状态和响应头不完整;
  //4:已加载。所有数据接收完毕


if(xhr.status==200){  //检测服务器返回的响应报文的状态码是否为200
   alert(xhr.responseText);  //服务器返回的Response数据
   //解析服务器返回的jason格式的数据
   var s=xhr.responseText;
   var json=eval("("+s+")");
   alert(jason.data);
  }

            };
        };
        xhr.send(null);     //异步对象发送请求
 //xhr.send("txtName=BY&txtPwd=0703");  以post方式发送数据