453   jQuery JS

以前直接使用JQ包装好的ajax函数,今天研究了一下,其实是浏览器利用XMLHttpRequest对象和服务器交互,不重新加载整个网页的情况下,对网页的某部分进行更新。
以下为示例

var xmlhttp;
// 创建XMLHttpRequest
if (window.XMLHttpRequest){	
	// code for IE7+, Firefox, Chrome, Opera, Safari
	xmlhttp=new XMLHttpRequest();
}else{	
	// code for IE6, IE5
	xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
// 设置超时,单位秒;
xmlhttp.timeout = 10000; 
// 超时处理函数
xmlhttp.ontimeout = function (e) {
  // XMLHttpRequest timed out. Do something here.
  alert('亲,网络塞车了,先听首歌吧');
};

// 请求返回处理
xmlhttp.onreadystatechange = function() {
        // 读取对象状态
	if (xmlhttp.readyState == XMLHttpRequest.DONE) {
                // 读取返回状态和结果,200表示http请求成功
		if (xmlhttp.status == 200) {
                        // 获取返回数据
			var response =  eval('('+xmlhttp.responseText+')');
			
		} else {
                        // 异常处理
			alert('亲,汽车抛锚了,正在维修中');
		}
	}

} 

// 请求方式POST/GET
var method = 'POST';
//请求地址url
var url = 'click';
// true(异步)或 false(同步)
var async = true; 				
xmlhttp.open(method,url,async);
// 设置头部信息
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
// 发起请求,并传递参数
xmlhttp.send('key1=val1&key2=val2');		



Leave a Reply

Your email address will not be published. Required fields are marked *