一、利用Promise对原生ajax进行封装
function ajax({
method = 'get',
url = "",
params = ""
}) {
const p = new Promise((resolve, reject) => {
var xhr = new XMLHttpRequest();
if (method == "get" && params != undefined) {
url = url + "?" + params;
}
xhr.open(method, url, true);
xhr.onreadystatechange = function() {
if (this.status == 200 && this.readyState == 4) {
resolve(this.responseText);
}
};
if (method == "post" && params != undefined) {
xhr.send(params);
} else {
xhr.send();
}
});
return p;
}
二、对jQuery的ajax进行封装
function http({
url = '',
type = 'get',
data = {}
}) {
const p = new Promise((resolve, reject) => {
$.ajax({
url,
type,
data,
dataType: 'json',
success: function(res) {
resolve(res['list']);
},
error: function(err) {
reject(err);
}
});
});
return p;
}