XMLHttpRequest对象的创建与用法

IE5是第一款引入XHR对象的浏览器。在IE5678是通过MSXML库里的一个ActiveXObject对象实现的。其他新的浏览器可直接创建XMLHttpRequest对象

下面一个兼容创建xhr方法

 1 function createXHR(){
 2             if (typeof XMLHttpRequest != "undefined"){
 3                 return new XMLHttpRequest();
 4             } else if (typeof ActiveXObject != "undefined"){
 5                 if (typeof arguments.callee.activeXString != "string"){
 6                     var versions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0",
 7                                     "MSXML2.XMLHttp"],
 8                         i, len;
 9             
10                     for (i=0,len=versions.length; i < len; i++){
11                         try {
12                             new ActiveXObject(versions[i]);
13                             arguments.callee.activeXString = versions[i];
14                             break;
15                         } catch (ex){
16                             //skip
17                         }
18                     }
19                 }
20             
21                 return new ActiveXObject(arguments.callee.activeXString);
22             } else {
23                 throw new Error("No XHR object available.");
24             }
25         }
 1      //创建XHR对象
 2         var xhr = createXHR(); 
3 //打开请求 4 xhr.open("get", "example.txt", false); //只能向同一域中 使用相同端口和协议的URL发送请求。否则可能引发安全错误

5 //发送请求 6 xhr.send(null); //send()方法接受一个参数,即请求主体发送的数据,没数据必须传入null 7 8 if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){ 9 alert(xhr.statusText); 10 alert(xhr.responseText); 11 } else { 12 alert("Request was unsuccessful: " + xhr.status); 13 }

xhr.resonseText:响应主体被返回的文本

xhr.status:响应的HTTP状态 。一般将状态码为200作为成功标识;状态码为304标识请求的资源没有被修改,可以直接使用缓存

xhr.statusText:响应的HTTP状态说明

原文地址:https://www.cnblogs.com/yijinc/p/5230643.html