代码改变世界

完美兼容IE、FF、Opera的Ajax类支持get、post、自定义回调函数

2011-04-06 10:24  focusdada  阅读(210)  评论(0)    收藏  举报
function Ajax(){

this.httpXML=false;

this.init();

}

Ajax.prototype.init
=function(){

if(window.XMLHttpRequest){

this.httpXML=new XMLHttpRequest();

if (this.httpXML.overrideMimeType){

this.httpXML.overrideMimeType("text/xml");

}

}
else if(window.ActiveXObject){

try{this.httpXML = new ActiveXObject("Msxml2.XMLHTTP");}catch (e){

try{this.httpXML = new ActiveXObject("Microsoft.XMLHTTP");}catch (e){}

}

}

if(!this.httpXML){

window.alert(
"can't create XMLHttpRequest object");

return null;

}

}

Ajax.prototype.send
=function(_method,_url,_data,_callback){

this.httpXML.onreadystatechange=function(){

if(this.readyState==4&&this.status==200){

_callback.call(
this,this.responseText);

}

}

if (_method.toLowerCase() == "get"){

this.httpXML.open(_method, _url, true);

this.httpXML.send(null);

}
else if (_method.toLowerCase() == "post"){

this.httpXML.open(_method, _url, true);

this.httpXML.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

this.httpXML.send(_data);

}

}

//===========================================

function getResult(data){

alert(data);

}

new Ajax().send('post','url','a=1&b=2',getResult);