Ajax发送异步请求(四步操作)

1.第一步(得到XMLHttpRequest)

*ajax其实只需要学习一个对象:XMLHttpRequest,如果掌握了它,就掌握了ajax!!

*得到XMLHttpRequest

>大多数浏览器都支持:var xmlHttp = new XMLHttpRequest();

>IE6.0: var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

>IE5.5以及更早版本:var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 

*编写创建XMLHttpRequest对象的函数

function createXMLHttpRequest(){

  try{

    return new XMLHttpRequest();

  } catch(e){

    try{

      return new ActiveXObject("Msxml2.XMLHTTP);

    }catch(e){

      try{

        return new ActiveXObject("Microsoft.XMLHTTP");

      }catch(e){

        alert("请问你用的什么浏览器?");

        throw e;

      }

    }

  } 

}

2.第二步:(打开与服务器的连接)

* xmlHttp.opne():用来打开与服务器的连接,它需要三个参数

  >请求方式:可以是GET 或 POST

  >请求的URL:指定服务器端资源,例如:/Ajax/AServlet

* xmlHttp.open("GET","/Ajax/AServlet",true);

3.第三步,(发送请求)‘

* xmlHttp.send(null):如果不给可能会造成那部份浏览器无法发送!

>参数:就是请求体内容!如果是GET请求,必须给出null。

4.第四步

*在xmlHttp对象的一个事件上注册监听器:onreadystatechange

*XMLHttp对象一共有5个状态

  >0 : 刚创建,还没有调用open()方法

  >1 :请求开始,调用了open()方法,但还没有调用send()方法

  >2 : 调用完了send()方法了

  >3 : 服务器已经开始响应,但不表示响应结束了

  >4 :服务器响应结束!

*得到xmlHttp对象的状态

  >var state = xmlHttp.readyState; //可能是0,1,2,3,4

*得到服务器响应的状态码

  >var status = xmlHttp.status; //例如为 200,404,500

*得到服务器响应内容

  >var  content = xmlHttp.responseText;//得到服务器的响应的文本格式的内容

  >var  content = xmlHttp.responseXML;//得到服务器的响应的xml响应的内容

原文地址:https://www.cnblogs.com/trister/p/4681639.html