/*
封装一个类似于jq的ajax方法,调用与下面类似
$.ajax({
url:xxx.php,
data:{
'act':'q',
'user':'ghost',
'password':'123abc',
},
type:'post',
})
*/
function jsonToUrl(data){//将json数据变成url格式
var arr=[];
for(var i in data){
arr.push(i+'='+data[i]);
}
return arr.join('&');
}
function ajax(json){
json=json||{};
if(!json.url){
return;
}
json.data=json.data||{};
json.type=json.type||"get";
var xhr=null;
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest()
}else{
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
if(json.type=='get'){
xhr.open('GET',json.url+'?'+jsonToUrl(json.data),true);
xhr.send();
}else{
xhr.open('POST',json.url,true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");//post方法需要添加请求头
xhr.send(jsonToUrl(json.data));
}
xhr.onreadystatechange=function(){//监听
if(xhr.readyState==4){
if(xhr.status==200){
json.success && json.success(xhr.responseText);
}else{
json.fail && json.fail(xhr.status);
}
}
}
}