原生js实现ajax

Ajax

ajax是一个异步请求数据的技术。
浏览器有提供相关的对象:window.XMLHttpRequest 或 window.ActiveXObject。

发送Ajax请求过程如下:

1. 创建 XMLHttpRequest 对象
2. 监听状态 对象状态变化
3. 设置 XMLHttpRequest 对象
4. 发送请求

代码如下:

 1     var xmlhttp = null;
 2     var data = "";            // 返回data
 3 
 4     if(window.XMLHttpRequest) {
 5         xmlhttp = new XMLHttpRequest();
 6     }
 7     else {
 8         xmlhttp = window.ActiveXObject("Microsoft.XMLHTTP");
 9     }
10 
11     if(xmlhttp!=null) {
12         xmlhttp.onreadystatechange = stateChange;
13         xmlhttp.open("GET", url, true);
14         xmlhttp.send(null);
15     }
16 
17     function stateChange(){
18         // load
19         if(xmlhttp.readyState==4){
20             var status = xmlhttp.status;
21             // 成功
22             if(status==200){
23                 data = xmlhttp.responseText;
24             }
25             else if(status==404){
26                 console.error("404 NOT FOUND!");
27             }
28             else{
29                 console.error("error");
30             }
31         }
32     }

 

xmlhttp相关属性/方法说明:

onreadystatechange:
服务器接收请求后会返回服务器的当前状态(readyState)。每次返回都状态都会触发onreadystatechange()。
状态码:
  0: 请求未初始化
  1: 服务器连接已建立
  2: 请求已接收
  3: 请求处理中
  4: 请求已完成,且响应已就绪

open:
  设置xmlhttp对象。open(method, url, async)。


open参数说明:
  method:请求方法。    // GET、POST
  url:请求的数据。        // http://www.xxxxx.com/p/a/t/h
  async:是否异步      // true、false

 

setRequestHeader(header, value): 向请求添加 HTTP 头。
send({param}): 发送请求。param为参数,只有POST才有参数。

 

readyState:返回服务器返回的状态。readyState改变时,会触发onreadystatechange事件
status:发送请求后,服务器返回的状态码。

 

responseXML: 接收返回的xml数据
responseText: 接收返回的Text数据

 

posted @ 2015-04-11 12:35  李理敬  阅读(260)  评论(0)    收藏  举报