Files
chat/frontend/src/api/index.js
T
2026-07-14 10:00:34 +08:00

37 lines
785 B
JavaScript

import axios from 'axios'
const api = axios.create({
baseURL: '/api',
timeout: 60000
})
api.interceptors.request.use(config => {
const token = localStorage.getItem('token')
if (token) {
config.headers.Authorization = `Bearer ${token}`
}
return config
})
api.interceptors.response.use(
res => res,
err => {
if (axios.isCancel(err)) {
return Promise.reject(err)
}
const message = err.response?.data?.message || '请求失败'
if (err.response?.status === 401) {
localStorage.removeItem('token')
if (!window.location.pathname.includes('/login')) {
window.location.href = '/login'
}
}
const wrapped = new Error(message)
wrapped.code = err.code
return Promise.reject(wrapped)
}
)
export default api