blob: 04bdcb3d04d1b86a93535e695af65b68ea778b0f [file] [log] [blame] [edit]
import axios, { type AxiosResponse } from "axios";
// 为所有auth外请求添加token头
axios.interceptors.request.use((config) => {
const requestUrl = config.url;
if (requestUrl?.includes("/auth/")) {
config.url = requestUrl.replace("/auth/","/");
} else {
const token = localStorage.getItem('token');
config.headers['token'] = `${token}`;
}
return config;
}, (error) => {
return error;
} );
// 统一响应拦截器
axios.interceptors.response.use(
(response: AxiosResponse) => {
const { code, msg, data } = response.data;
return {
...response, // 保留原本的响应信息
data: {
code,
message: msg,
data,
...response.data
},
};
},
(error) => {
return {
...error.response, // 保留原本的错误响应信息
data: {
code: -1,
message: error.message || '请求失败',
data: null,
success: false,
},
};
}
);
export default axios