64 lines
1.5 KiB
JavaScript
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 |