import axios from "axios"; const http = axios.create({ baseURL: "", timeout: 15000 }); http.interceptors.request.use((config) => { const token = localStorage.getItem("accessToken"); if (token) { config.headers = config.headers || {}; config.headers.Authorization = `Bearer ${token}`; } return config; }); http.interceptors.response.use( (resp) => { const body = resp.data; if (body && body.code !== "0") { return Promise.reject(new Error(body.msg || "请求失败")); } return resp; }, (error) => { if (error.response && (error.response.status === 401 || error.response.status === 403)) { // Clear session/local storage localStorage.removeItem("accessToken"); localStorage.removeItem("refreshToken"); sessionStorage.removeItem("userProfile"); // Force redirect to login with timeout flag window.location.href = "/login?timeout=1"; } return Promise.reject(error); } ); export default http;