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; |