const baseUrl = '';
let requestTask = {}
function http(url, method, data, header) {
data = data || {};
header = header || {};
method = method;
return new Promise(function(resolve, reject) {
requestTask[url] = uni.request({
url: baseUrl + url,
header: {
"Content-Type": "application/x-www-form-urlencoded",
'Authorization': uni.getStorageSync('token')
},
data: data,
method: method,
success: (res)=> {
if (res.data.code == 10000) {
resolve(res.data.data);
} else {
reject(res);
}
},
fail:(res)=> {
if (res.errMsg.includes('timeout')) {
uni.showModal({
content: '抱歉请求超时,请稍后重试',
showCancel: false
})
}
reject('网络出错');
}
});
}).catch(res => {
if (res.data.code == 40300 || res.data.code == 40302 || res.data.code == 40301) {
uni.showModal({
title: '',
content: '登录失效,重启小程序重新登录',
confirmColor: obj.theme_color,
showCancel: false,
mask: true,
success(res) {
if (res.confirm) {
getApp().globalData.login('reLogin');
}
}
});
return Promise.reject(res.data);
} else if (res.data.code == 50006) {
return Promise.reject(res.data);
} else {
return Promise.reject(res.data);
}
});
}
module.exports = {
baseUrl: baseUrl,
"get": function(url, data, header) {
return http(url, "get", data, header);
},
"post": function(url, data, header) {
return http(url, "post", data, {
'content-type': header ? header : 'application/x-www-form-urlencoded'
});
},
"put": function(url, data, header) {
return http(url, "put", data, header);
},
"delete": function(url, data, header) {
return http(url, "delete", data, header);
},
requestTask: requestTask
};
api集中管理
import http from '../http/index';
export default {
get(data) {
return http.get('/index/getWxMsgTemplateIds', data);
},
post(data) {
return http.post('/index/getThreeRegionList', data);
},
}
export function abortRequest(url){
let key = ''
for (let e in http.requestTask) {
if(e.includes(url)) key = e
}
http.requestTask[key].abort()
}
挂载全局
import common,{abortRequest} from './common';
export default {
common,
abortRequest
};
import api from 'api/api.js';
Vue.prototype.$api = api
页面调用
this.$api.common.get(data).then(res =>{})
this.$api.abortRequest('get')