原生:
// 封装一个ajax请求库实现get和post方法
function ajax(url,type,async,req,func) {
// 也可以考虑将参数进行处理,比如大小写一致等转换
let xhr = getXHR();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304) {
func(xhr.responseText);
}
}
};
xhr.open(type,url,async);
xhr.send(type == 'post' ? req : null);
}
function getXHR() {
if (typeof XMLHttpRequest != 'undefined') {
return new XMLHttpRequest();
} else if (typeof ActiveXObject != 'undefined') {
return new ActiveXObject('MSXML2.XMLHttp'); // IE7的某个版本
} else {
throw new Error('no XHR object available');
}
}
jq:
// 封装一个ajax请求库实现get和post方法
function ajax(url,type,async,req,func) {
$.ajax({
url: url,
data: req,
type: type,
success: function (res) {
if (res.success) {
func(res.data, res.msg);
}
else {
throw "请求失败 : " + url;
}
},
error: function (e) {
console.log("错误: " + e);
},
async: async
})
}