详解原生AJAX请求demo(兼容IE5/6)

526 阅读1分钟
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);