越简单越好!

ajax封装使用

发表于 2009-09-17 17:17 | 1440次阅读 0次点赞   JavaScript

function InitAjax(){
var xmlhttp = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest){ //Mozilla 浏览器
   xmlhttp = new XMLHttpRequest();
   if (xmlhttp.overrideMimeType) {//设置MiME类别
    xmlhttp.overrideMimeType("text/xml");
   }
}else if(window.ActiveXObject){ // IE浏览器
   try{
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
   }catch(e){
    try{
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }catch(e){}
   }
}

if(!xmlhttp){ // 异常,创建对象实例失败
   window.alert("不能创建XMLHttpRequest对象实例.");
   return false;
}

return xmlhttp;
}

function ajax(url,action,data,callback,type,async) {
// action: 提交方式 get,post
// url: 请求地址
// data: 提交数据
// callback: 回调函数 function(data)
// type: 返回数据类型 text,xml,json
// async: 是否异步传输 true,false
if(!url) { return false; }
if(!action) { action = 'get'; }
if(!callback) { callback = ajaxCallback; }
if(!type) { type = 'text'; }
if(!async) { async = true; }
action = action.toLowerCase();
type = type.toLowerCase();

var xmlhttp = InitAjax();
xmlhttp.open(action,url,async);
xmlhttp.setRequestHeader("x-requested-with","XMLHttpRequest");
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function(){
   if(xmlhttp.readyState==4 && xmlhttp.status==200) {
    var returndata = '';
    if(type=='json') {
     returndata = eval("(" + xmlhttp.responseText + ")");
    } else if (type=='xml') {
     returndata = xmlhttp.responseXML;
    } else {
     returndata = xmlhttp.responseText;
    }
    callback(returndata);
   }
};
xmlhttp.send(data);
}

//test 
ajax('test.php','get','',test,'json');
function test(data){
alert(data.name);
}

返回顶部 ^