blob: bc2e56646f36b3584a1de01469c251ad22dd1ba7 [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');
22301014b1477f72025-06-07 22:54:40 +080010 console.log(token);
11 config.headers['token'] = `${token}`;
223010146abadd72025-06-05 14:21:13 +080012 }
13 return config;
14}, (error) => {
15 return error;
2230102371ee1c92025-06-05 16:18:32 +080016} );
17
2230101462240ab2025-06-07 09:28:16 +080018
19// 统一响应拦截器
20axios.interceptors.response.use(
21 (response: AxiosResponse) => {
22 const { code, msg, data } = response.data;
23
24 return {
25 ...response, // 保留原本的响应信息
26 data: {
27 code,
28 message: msg,
29 data,
30 success: code === 0, // 根据 code 判断请求是否成功
31 },
32 };
33 },
34 (error) => {
35 return {
36 ...error.response, // 保留原本的错误响应信息
37 data: {
38 code: -1,
39 message: error.message || '请求失败',
40 data: null,
41 success: false,
42 },
43 };
44 }
45);
46
2230102371ee1c92025-06-05 16:18:32 +080047export default axios