import axios from 'axios' const request = axios.create({ baseURL: '/api', timeout: 300000 }) request.interceptors.request.use( config => { const token = localStorage.getItem('token') if (token) { config.headers.Authorization = `Bearer ${token}` } return config }, error => Promise.reject(error) ) request.interceptors.response.use( response => response.data, error => { const status = error.response?.status // 只有 401/403 才清理 token 并跳转登录页 if (status === 401 || status === 403) { localStorage.removeItem('token') localStorage.removeItem('username') localStorage.removeItem('userId') localStorage.removeItem('nickname') localStorage.removeItem('avatar') localStorage.removeItem('storageUsed') localStorage.removeItem('storageLimit') if (window.location.pathname !== '/login') { window.location.href = '/login' } } // 其他错误(404、500、网络错误等)正常 reject,不跳转 return Promise.reject(error) } ) export default request