Files
Yi.Framework/Yi.Bbs.Vue3/src/utils/request.js
2023-12-14 10:15:23 +08:00

64 lines
1.5 KiB
JavaScript

import axios from 'axios';
import { getToken } from '@/utils/auth'
export let isRelogin = { show: false };
// import JsonBig from 'json-bigint'
const myaxios = axios.create({
baseURL:import.meta.env.VITE_APP_BASEAPI,
timeout: 50000,
// transformResponse: [data => {
// try {
// const json = JsonBig({
// storeAsString: true
// })
// return json.parse(data)
// } catch (err) {
// // 如果转换失败,则包装为统一数据格式并返回
// return {
// data
// }
// }
// }],
})
// 请求拦截器
myaxios.interceptors.request.use(function (config) {
if (getToken()) {
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
}
return config;
}, function (error) {
return Promise.reject(error);
});
// 响应拦截器
myaxios.interceptors.response.use(function (response) {
//业务错误
if(response.data.statusCode==403)
{
ElMessage.error(response.data.errors)
}
return response;
}, function (error) {
const code = error.response.status;
const msg = error.message;
//业务异常+应用异常,统一处理
switch(code)
{
case 401:
ElMessage.error('登录已过期')
break;
case 403:
ElMessage.error(msg)
break;
case 500:
ElMessage.error(msg)
break;
}
return Promise.reject(error);
});
export default myaxios