函数说明:
- _type:选择数据获取方式 --- get / post
- _url:获取数据的基础网址链接
- callback:通过回调函数的形式返回数据
- _data:数据对象
function my_ajax(_type,_url,callback,_data){
//通过new关键词实例化一个XMLHttpRequest请求。
let xhr = new XMLHttpRequest();
let str="";
for(let i in _data){
str += i+"="+_data[i]+"&";//字符串拼接
}
str=str.slice(0,-1);//去掉最后一个“&”
//后台决定请求方式的类型,get和post的处理方式不一样
if(_type=="get"||_type=="GET"){
xhr.open(_type,_url+"?"+str);
xhr.send();
}else if(_type=="post"||_type=="POST"){
xhr.open(_type,_url);
xhr.send(str);//post请求
}
//监听实例化对象是否接受请求,并接受数据。
xhr.addEventListener("readystatechange",function(){
if(xhr.readyState==4&&xhr.status==200){
var result = JSON.parse(xhr.responseText);
callback(result);//通过回调函数的形式才能返回 ***
}
})
}
open:通过实例化对象调用open方法,设置请求的方式和地址。
send:通过实例化对象调用send方法发送请求。
网友评论