ajax-发送异步请求

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

1、第一步(得到xmlHttpRequest对象)

- 得到XMLHttpRequest

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

- 编写创建XMLHttpRequest对象的函数

function createXMLHttpRequest(){
 try{

 return new XMLHttpRequest();
}catch(e){

try{

...
}catch(e){
try{

...
}catch(e){

throw e;

}
}

}

2、第二部(打开与服务器的连接)

- xmlHttp.open();用来打开与服务器的连接,它需要三个参数

  请求方式:post或者get

  请求的url:置顶服务器端资源 例如 /PRO/AServlet

  请求是否为异步:true:发送异步请求 否则同步请求

- xmlHttp.open("GET"," /PRO/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内容,此时content是document对象

xmlHttp.onreadystatechange = function(){//xmlHttp的5种状态都会调用这个方法
    if(xmlHttp.readtState == 4 && xmlHttp.Status == 200){//双重判断,判断是否为4状态和200

   //获取服务器的响应内容

   var text = xmlHttp.responseText;
}
};

猜你喜欢

转载自blog.csdn.net/Tommy5553/article/details/82352163