function createXHR(){
// 检测原生XHR对象是否存在
if ( window.XMLHpptRequest ){
// 若是存在就返回新实例
return new XMLHpptRequest();
} else { // 若是不存在就检测ActiveX对象
// 兼容IE5/6
return new ActiveXObject('Microsoft.XMLHttp');
}
}
// 在全部的浏览器中建立XHR对象
var xhr = new createXHR();
xhr.onReadyStateChange = function(){
// readyState表示请求/响应过程的当前活动阶段。4表示完成,0-3不用关心。
if (xhr.readyState == 4) {
// status为状态码,是响应的HTTP状态,200到300之间或304都表示响应已经成功返回
if( ( (xhr.status >= 200 && xhr.status <= 300) || xhr.status == 304 ) {
// responseText做为响应主体被返回的文本
console.log(xhr.responseText);
} else {
// ...
}
}
// open()方法是启动一个请求以备发送
// open接收3个参数:请求类型、请求的url,是否异步发送请求的布尔值(可选,true为异步)
xhr.open("GET", url, true);
// send()发送特定的请求,接收一个参数,做为请求主题发送的数据。
xhr.send();
xhr.open("POST", url, false);
xhr.send(data);
复制代码