52,797
社区成员
发帖
与我相关
我的任务
分享
if(typeof(XMLHttpRequest)=="undefined")
window.XMLHttpRequest=function(){//========IE下的XMLHttpRequst
var acX=['msxml2.xmlhttp.5.0','msxml2.xmlhttp.4.0','msxml2.xmlhttp.3.0'
,'msxml2.xmlhttp','microsoft.xmlhttp'],Xhr;
for(var i=0;i<acX.length;i++)
try{Xhr=new ActiveXObject(acX[i]);return Xhr;}catch(e){}
return false;
}
AjaxPool={
author:'showbo',
pools:[],
getObject:function(){
for(var i=0;i<this.pools.length;i++)if(this.pools[i].readyState==0||this.pools[i].readyState==4)return this.pools[i];
this.pools[this.pools.length]=new XMLHttpRequest();
return this.pools[this.pools.length-1];
},
send:function(cfg){/*cfg示例:
{url:'请求的页面',params:'参数',method:'方法,如果不传递默认为get'
,success:'成功时的回调函数'
,failure:'失败时的回调函数',otherParams:'回调函数的第2个参数,可以为json对象'}*/
if(!cfg.url)throw("url不正确!");
var method=cfg.method,asy="boolean"==typeof(cfg.asy)?cfg.asy:true;
if(!method)method="get";
if(method.toLocaleLowerCase()=='get'){
var _dc=new Date().toLocaleString().replace(/[年月日: -]/g,'')
cfg.params=cfg.params?cfg.params+'&_dc='+_dc:'_dc='+_dc;
if(cfg.url.indexOf("?")!=-1)cfg.url+="&"+cfg.params;
else cfg.url+="?"+cfg.params;
cfg.params=null;
}
else if(!cfg.params)cfg.params=null;
var o=this.getObject();
if(!o)throw("未能创建ajax对象!");
o.open(method,cfg.url,asy);
if(method.toLocaleLowerCase()=='post')o.setRequestHeader("content-type","application/x-www-form-urlencoded");
o.send(cfg.params);//params是键值对,而不是json对象,注意..如“id=1&type=2”此种形式
o.onreadystatechange=function(){
if(o.readyState==4){
if(o.status==200||o.status==0){
if("function"==typeof(cfg.success))cfg.success(o,cfg.otherParams);
}
else if("function"==typeof(cfg.failure))cfg.failure(o,cfg.otherParams);
}
}
}
}