自己封装的纯js实现ajax

来源:互联网 发布:加入网络水军 编辑:程序博客网 时间:2024/05/12 23:48
复制代码
 1 var aj=new Object(); 2 aj.request = function(){ 3     if(window.XMLHttpRequest) { 4         var ajax = new XMLHttpRequest(); 5     }else if (window.ActiveXObject) {  6         try { 7             var ajax = new ActiveXObject("Msxml2.XMLHTTP"); 8         } catch (e) { 9             try {10                     var ajax = new ActiveXObject("Microsoft.XMLHTTP");11                 } catch (e) {}12         }13     }14     if (!ajax) { 15             window.alert("不能创建XMLHttpRequest对象<SPAN class=hilite2>实例</SPAN>.");16             return false;17     }18         return ajax;19 }20 aj.req=aj.request();21 aj.Handle=function(callback){22     aj.req.onreadystatechange=function(){23         if(aj.req.readyState==4){24             if(aj.req.status==200){25                 callback(aj.req.responseText);26             }27         }28     }29 }30 aj.cl=function(o){31     if(typeof(o)=='object'){32         var str='';33         for(a in o){34             35             str+=a+'='+o[a]+'&';36         }37         str=str.substr(0,str.length-1);38         return str;39     }else{40         return o;41     }42 }43 aj.get=function(url,callback){44     aj.req.open('get',url,true);45     aj.req.send(null);46     aj.Handle(callback);47 }48 aj.post=function(url,content,callback){49     aj.req.open('post',url,true);50     aj.req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');51     content=aj.cl(content);52     aj.req.send(content);53     aj.Handle(callback);54 }
复制代码

使用的时候就是:

//get的使用

aj.get(url,function(data){返回数据后处理})

//post的使用

aj.post(url,{data:aa},function(data){返回的数据处理})

或者

aj.post(url,"data=1&a=2",function(data){返回的数据处理})