以前直接使用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