81 lines
1.7 KiB
JavaScript
81 lines
1.7 KiB
JavaScript
import store from '@/store'
|
|
import {
|
|
customTotast
|
|
} from "@/utils/index"
|
|
|
|
export function runInterceptors(instance) {
|
|
const requestUse = instance.interceptors.request.use.bind(instance.interceptors.request); //请求拦截
|
|
const responsetUse = instance.interceptors.response.use.bind(instance.interceptors.response);//响应拦截
|
|
// 添加token
|
|
requestUse((config) => {
|
|
const {
|
|
token
|
|
} = store.state.users;
|
|
token && (config.header['token'] = token)
|
|
return config;
|
|
});
|
|
|
|
// 设置post的data不为空
|
|
requestUse((config) => {
|
|
if (config.method === "post" && !config.data) {
|
|
config.data = {};
|
|
}
|
|
return config;
|
|
});
|
|
|
|
// 处理登录过期
|
|
responsetUse((respone) => {
|
|
|
|
const {
|
|
code
|
|
} = respone.data;
|
|
|
|
// 如果失效跳转
|
|
if (code == 1005 || code == 1006 || code == 1103 || code == 1100 || code == 1101 || code == 1102 ||
|
|
code == 1300) {
|
|
uni.showToast({
|
|
title: '登录已失效',
|
|
duration: 3000,
|
|
});
|
|
// store.dispatch('users/logout')
|
|
|
|
return Promise.reject('没有登录');
|
|
}
|
|
return respone;
|
|
});
|
|
|
|
// 处理响应结果
|
|
responsetUse((instance) => {
|
|
console.log(instance);
|
|
const {
|
|
code,
|
|
msg
|
|
} = instance.data;
|
|
|
|
if (code != 0 ) {
|
|
// customTotast({
|
|
// title: msg
|
|
// })()
|
|
return Promise.reject(instance.data)
|
|
}
|
|
console.log(instance);
|
|
return instance.data;
|
|
}, handleResponseError);
|
|
return instance;
|
|
}
|
|
|
|
// 处理错误
|
|
function handleResponseError(err) {
|
|
console.log(err,'6666');
|
|
const errType = typeof err;
|
|
if (err && errType === "string") {
|
|
customTotast({
|
|
title: err
|
|
})()
|
|
return new Promise(() => {});
|
|
}
|
|
if (errType === "object") {
|
|
err = "请求错误";
|
|
}
|
|
return Promise.reject(err);
|
|
} |