/**
* 封装请求方法
* @param {Object} url 接口请求地址
* @param {Object} data 接口请求参数(无需请求方式参数,则此项可以为空,否则必须传)
* @param {Object} params 请求方式参数(可以为空)
*/
function ajax(url, data, params) {
return new Promise(function(resolve, reject) {
$.ajax({
url: url,
type: params && params.type || 'post',
dataType: params && params.dataType || 'JSON',
data: data,
beforeSend: function(xhr){
let token = store.state.token;//在vuex设置token后,通过beforeSend拦截请求并添加请求头中的token
if(token != ""){
xhr.setRequestHeader("token",token)
}
},
content-type: "application/json; charset-UTF-8",
success: function(res) {
resolve(res)
},
error: function(res) {
const data = res.responseJSON;
switch (res.status) {
//非GRT POST请求无法进入success回调,在此拦截status=200的情况
case 200:
resolve(res);
console.log(res);
return;
case 400:
alert('error.ststem.busy')
break;
case 404:
alert('error.ststem.busy')
break;
case 500:
alert('error.ststem.busy')
break;
}
}
});
});
}