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);
}