function createXHR(){ if(typeof XMLHttpRequest != ‘undefined‘){ return new XMLHttpRequest(); }else if(typeof ActiveXObject != ‘undefined‘){ var version = [ ‘MSXML2.XMLHttp.6.0‘, ‘MSXML2.XMLHttp.3.0‘, ‘MSXML2.XMLHttp‘, ]; for(var i=0; i<version.length; i++){ try{ return new ActiveXObject(version[i]); }catch(e){ } } }else{ throw new Error(‘您的系统或浏览器不支持XHR对象!‘); } } //名值对转换字符串 function params(data){ var arr=[]; for(var i in data){ arr.push(encodeURIComponent(i) + ‘=‘ + encodeURIComponent(data[i])); } return arr.join(‘&‘); } //封装Ajax function ajax(obj){ var xhr = new createXHR(); obj.url = obj.url + ‘?rand=‘+ Math.random(); obj.data = params(obj.data); if(obj.method == ‘get‘)obj.url += obj.url.indexOf(‘?‘) == -1 ? ‘?‘ +obj.data : ‘&‘ + obj.data ; if(obj.async === true){ xhr.onreadystatechange=function(){ if(xhr.readyState == 4){ callback(); } } } xhr.open(obj.method, obj.url, obj.async); if(obj.method === ‘post‘){ xhr.setRequestHeader(‘Content-Type‘,‘application/x-www-form-urlencoded‘); xhr.send(obj.data); }else{ xhr.send(null); } if(obj.async === false){ callback(); } function callback(){ if(xhr.status == 200){ obj.success(xhr.responseText); }else{ console.log("获取数据错误!错误代号:"+ xhr.status +"错误信息:"+ xhr.statusText); } } } //调用Ajax addEvent(document, ‘click‘, function(){ ajax({ method:‘get‘, url:‘demo.php‘, data:{ ‘name‘:‘L&ee‘, ‘age‘:100 }, success:function(text){ console.log(text); }, async:true }); })
时间: 2024-11-05 06:18:03