前言:想提出通用的ajax的请求,但是也需要拿到ajax回调。
默认情况下,Ajax请求是异步的,但是可以通过一些方式将ajax变成同步请求。
一、使用ES7的Async和Await
1 通用Ajax POST框架
async function commonAjaxPost(url, argument) {
let datas = JSON.stringify(argument);
const result = $.ajax({
url: url,
method: "post",
data: datas,
success: function(rs){
if(rs.code != 0){
alert(rs.msg);
}
},
error:function(d){
console.log(d)
}
});
return result;
}
2 调用
async function init() {
let result = await commonAjaxPost("your api address", {});
console.log(result);
// do something with need result
}
二、XmlHttpRequest
1 通用请求框架
async function commonPostRequest(url, argument) {
const xhr = new XMLHttpRequest();
xhr.open('post', url, false); // 第三个参数为是否开启异步请求
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send(argument);
const result = JSON.parse(xhr.responseText);
return result;
}
2 调用
function init() {
let result = commonPostRequest("your api address", {});
console.log(result);
// do something with need result
}