2026-03-21 02:38:04 +08:00

45 lines
1.1 KiB
TypeScript

import axios from 'axios'
import { ElMessage } from 'element-plus'
import store from '@/store'
import { router } from '@/router'
const http = axios.create({
timeout: 10000,
paramsSerializer: {
indexes: null
}
})
// 添加请求拦截器
http.interceptors.request.use(config => {
const token = store.state.loginInfo.token
if (token !== null) {
config.headers.set('token', token)
}
return config
}, err => {
ElMessage.error('请求超时,请稍后再试')
return Promise.reject(err)
})
http.interceptors.response.use(res => {
return res.data
}, err => {
if (err.response.status >= 500) {
ElMessage.error('服务器内部错误')
} else if (err.response.status >= 400) {
if (typeof err.response.data.message === 'string') {
ElMessage.warning(err.response.data.message)
} else if (Array.isArray(err.response.data.message)) {
let message = err.response.data.message.join('<br/>')
ElMessage.warning(message)
}
if (err.response.status === 403) {
router.push('/login')
}
}
return Promise.reject(err)
})
export default http