blob: 3945bc3286776bd7042a5bfaa304d501bf6c0ede [file] [log] [blame]
2230101462240ab2025-06-07 09:28:16 +08001import axios, { type AxiosResponse } from "axios";
223010146abadd72025-06-05 14:21:13 +08002
3// 为所有auth外请求添加token头
4axios.interceptors.request.use((config) => {
5 const requestUrl = config.url;
6 if (requestUrl?.includes("/auth/")) {
7 config.url = requestUrl.replace("/auth/","/");
8 } else {
9 const token = localStorage.getItem('token');
223010146abadd72025-06-05 14:21:13 +080010 config.headers['Authorization'] = `Bearer ${token}`;
11 }
12 return config;
13}, (error) => {
14 return error;
2230102371ee1c92025-06-05 16:18:32 +080015} );
16
2230101462240ab2025-06-07 09:28:16 +080017
18// 统一响应拦截器
19axios.interceptors.response.use(
20 (response: AxiosResponse) => {
21 const { code, msg, data } = response.data;
22
23 return {
24 ...response, // 保留原本的响应信息
25 data: {
26 code,
27 message: msg,
28 data,
29 success: code === 0, // 根据 code 判断请求是否成功
30 },
31 };
32 },
33 (error) => {
34 return {
35 ...error.response, // 保留原本的错误响应信息
36 data: {
37 code: -1,
38 message: error.message || '请求失败',
39 data: null,
40 success: false,
41 },
42 };
43 }
44);
45
2230102371ee1c92025-06-05 16:18:32 +080046export default axios