57 lines
1.5 KiB
Plaintext
57 lines
1.5 KiB
Plaintext
import createAxios from "./axios";
|
||
import { token } from "@/stores/modules/user";
|
||
import { message } from "./message";
|
||
|
||
const TOKEN_KEY = "token";
|
||
const APP_KEY = "appid";
|
||
const API_PREFIX = "";
|
||
|
||
// 请求拦截
|
||
const beforeRequest = (config: any) => {
|
||
// =====》 token 逻辑自定义处理
|
||
console.log("token 逻辑自定义处理")
|
||
|
||
// if (APP_ID) config.headers[APP_KEY] = APP_ID
|
||
if (token) config.headers[TOKEN_KEY] = unref(token);
|
||
};
|
||
|
||
// 响应拦截
|
||
const afterResponse = async (response: any) => {
|
||
const { data, status } = response;
|
||
if (data instanceof Blob) {
|
||
const fileName = response.headers["content-disposition"]
|
||
?.split(";")[1]
|
||
?.split("=")[1];
|
||
return {
|
||
data,
|
||
fileName,
|
||
};
|
||
}
|
||
const { errCode, code, msg } = data || {};
|
||
const errMsg = data?.errMsg || data?.message || msg;
|
||
console.log(11, code, errMsg)
|
||
// // =====》 自定义业务状态处理
|
||
// const app = Vue.prototype.getApp();
|
||
// if (code === 10005) {
|
||
// // await logout()
|
||
// }
|
||
|
||
if (![0, 200].includes(code)) {
|
||
message.error(errMsg);
|
||
return Promise.reject(errMsg);
|
||
}
|
||
|
||
if (/^[4|5].*/.test(code || errCode || status)) {
|
||
console.error('> axios(interceptors.response): ', errMsg);
|
||
message.error(errMsg);
|
||
// 处理未登录,token过期等 情况
|
||
// if (code !== 404 && /^[4].*/.test(code || errCode || status)) {
|
||
// await app.fedLogout();
|
||
// }
|
||
return Promise.reject(data);
|
||
}
|
||
return data;
|
||
};
|
||
|
||
|
||
export default createAxios |