以前学习过如何用原生的javascript实现ajax,但是久了不用就忘记了,今天来巩固一下,直接上代码:
//创建ajax对象
ajax = (url,method,data) => {
var http = window.XMLHttpRequest? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
//为了兼容ie6
http.onreadystatechange = () => { //readyState状态改变事件
if(http.readyState == 4){
if(http.status == 200){
//对http.responseText处理
}
else {
//错误处理
}
}
}
if(typeof data == 'object'){ //判断传进来的参数是不是对象
let str = '';
for(let key in data){
str += key+'='+data[key]+'&';
}
data = str.replace(/&$/, '');
}
let random = Math.floor(Math.random()*10); //生成0-10随机数并整数化,目的是清除缓存
if (method == 'GET'){ //判断是不是get方法
if (data){
http.open('GET',url+'?'+data,true);
}
else{
http.open('GET',url+'?t='+random,true);
}
http.send();
}
else{ 如果是post方法
http.open('POST',url,true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//设置请求头信息
http.send(data);
}
}