promise封装的ajax
解决请求里面在套用请求问题
代码:
function promiseAjax(options) {
return new Promise((resolve, reject) => {
var xhr = new XMLHttpRequest();
// 获取请求参数
var params = formdata(options.data); //a=1&b=2
// get请求
if (options.type == "GET") {
xhr.open(options.type, options.url + '?' + params, options.isAsync);
xhr.send();
}
//post请求
if (options.type == "POST") {
xhr.open(options.type, options.url, options.isAsync);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(params);
}
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 ) {
if (xhr.status == 200) {
resolve(xhr.responseText);
}else{
reject('错误');
}
}
}
})
}
// 将对象 { a:1 ,b:2 } 转为 a=1&b=2
function formdata(obj) {
var arr = [];
for (var k in obj) {
arr.push(k + '=' + obj[k]);
}
return arr.join('&')
}
调用:
promiseAjax({
type: '请求方式GET/POST',
url: '请求地址',
data: {
// 请求的参数
},
isAsync: true // 是否异步
}).then(data => {
// 成功的回调
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。