AJAX : Asynchronous JavaScript and XML
function ajax(obj){
let defaultobj={ //默认方式
"url":null,
"data":null,
"isAsync":true,
"type":"GET",
"func":null
}
for(let key in obj){
defaultobj[key]=obj[key]; //将传来的数据替换默认
}
let xhr=new XMLHttpRequest(); //创建一个ajax对象,此时readyState状态为0,请求未初始化
if(defaultobj.type.toLowerCase() == "GET"){
xhr.open("GET",defaultobj.url+"?"+defaultobj.data,defaultobj.isAsync)
}else{
xhr.open("POST",defaultobj.url,defaultobj.isAsync);
}
xhr.onreadystatechange(function(){ //服务器端为2,3,4,为接收,请求处理中,处理请求完成
if(xhr.readyState == 4 && xhr.status == 200){ //状态码为200为准备就绪
defaultobj.func(xhr.responseText);
}
})
if(defaultobj.type.toLowerCase() == "POST"){
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
xhr.send(defaultobj.data);
}
xhr.send(); //发送时readyState状态值为1,服务器连接已建立
}