| import axios from 'axios'; |
| |
| // 创建axios实例 |
| const api = axios.create({ |
| baseURL: '/api', // 使用相对路径,让Vite代理处理 |
| timeout: 10000, |
| headers: { |
| 'Content-Type': 'application/json', |
| } |
| }); |
| |
| // 请求拦截器 |
| api.interceptors.request.use( |
| config => { |
| // 从localStorage获取token |
| const token = localStorage.getItem('token'); |
| if (token) { |
| config.headers.Authorization = `Bearer ${token}`; |
| } |
| return config; |
| }, |
| error => { |
| return Promise.reject(error); |
| } |
| ); |
| |
| // 响应拦截器 |
| api.interceptors.response.use( |
| response => { |
| return response.data; |
| }, |
| error => { |
| if (error.response) { |
| // 处理401未授权错误 |
| if (error.response.status === 401) { |
| localStorage.removeItem('token'); |
| window.location.href = '/login'; |
| } |
| } |
| return Promise.reject(error); |
| } |
| ); |
| |
| export default api; |