blob: 6079b9ecaad3801a9f2416993915b9e17cfdbf58 [file] [log] [blame]
ybtda5978b2025-05-31 15:58:05 +08001import axios from "axios";
2import { message } from "antd";
3
4// 创建 axios 实例
5const request = axios.create({
ybtff3665a2025-06-09 23:53:39 +08006 baseURL: "http://192.168.10.174:8080/api",
ybt3ec62e42025-06-11 22:46:22 +08007 // baseURL: "http://localhost:8080/api",
8 // baseURL: "http://192.168.241.173:8080/api",
ybtda5978b2025-05-31 15:58:05 +08009 timeout: 10000,
10});
11
12// 请求拦截器
ybtda5978b2025-05-31 15:58:05 +080013request.interceptors.request.use(
14 (config) => {
15 // 从 localStorage 获取 token
16 const token = localStorage.getItem("token");
17
18 // 如果有 token 则添加到请求头
19 if (token) {
ybtbac75f22025-06-08 22:31:15 +080020 config.headers["token"] = token;
ybtda5978b2025-05-31 15:58:05 +080021 }
22
ybtda5978b2025-05-31 15:58:05 +080023
ybtbac75f22025-06-08 22:31:15 +080024 console.log("发出的请求", config);
ybtda5978b2025-05-31 15:58:05 +080025 return config;
26 },
27 (error) => {
28 return Promise.reject(error);
29 }
30);
31
ybtda5978b2025-05-31 15:58:05 +080032
33// 响应拦截器
34request.interceptors.response.use(
35 (response) => {
ybt3ec62e42025-06-11 22:46:22 +080036 console.log("响应数据", response);
ybtbac75f22025-06-08 22:31:15 +080037 return response.data;
ybtda5978b2025-05-31 15:58:05 +080038 },
39 (error) => {
40 if (error.response) {
41 const { status, data } = error.response;
42
43 // 处理 401 未授权错误(token 无效或过期)
44 if (status === 401) {
45 message.error("登录已过期,请重新登录");
46
47 // 清除本地存储的 token 和用户信息
48 localStorage.removeItem("token");
49 localStorage.removeItem("user");
50
51 // 重定向到登录页
52 if (window.location.pathname !== "/login") {
53 window.location.href = "/login";
54 }
55 } else {
56 // 处理其他错误
ybtbac75f22025-06-08 22:31:15 +080057 // message.error(data.message || "11111请求失败");
ybt3ec62e42025-06-11 22:46:22 +080058 message.error(data.message || "111111111");
ybtda5978b2025-05-31 15:58:05 +080059 }
60 } else if (error.request) {
61 // 请求发出但没有收到响应
62 message.error("网络错误,请检查您的网络连接");
63 } else {
64 // 请求配置出错
ybt0d010e52025-06-09 00:29:36 +080065 message.error(error.message || "请求配置错误");
ybtda5978b2025-05-31 15:58:05 +080066 }
67
68 return Promise.reject(error);
69 }
70);
71
ybtbac75f22025-06-08 22:31:15 +080072export default request;