import axios from 'axios'
|
import { ElMessage } from 'element-plus'
|
import { getToken } from '@/common/utils/index'
|
|
const Axios = axios.create({
|
responseType: 'json',
|
withCredentials: true // 允许携带 cookie
|
})
|
|
/**
|
* 请求拦截器
|
*/
|
Axios.interceptors.request.use(
|
(config) => {
|
// 若是有做鉴权token , 就给头部带上token
|
const token = getToken()
|
if (token) {
|
config.headers.Authorization = 'Bearer ' + token
|
}
|
|
return config
|
},
|
(error) => {
|
return Promise.reject(error)
|
}
|
)
|
|
/**
|
* 响应拦截器
|
*/
|
Axios.interceptors.response.use(
|
(res) => {
|
if (res.data.code == 200) {
|
return res.data ?? {}
|
} else {
|
ElMessage({
|
message: res.data.msg,
|
type: 'error',
|
duration: 3 * 1000
|
})
|
return res.data ?? {}
|
}
|
},
|
(error) => {
|
let { message } = error
|
if (message === 'Network Error') {
|
message = '后端接口连接异常'
|
} else if (message.includes('timeout')) {
|
message = '系统接口请求超时'
|
} else if (message.includes('Request failed with status code')) {
|
message = '系统接口' + message.substr(message.length - 3) + '异常'
|
}
|
ElMessage({
|
message: message,
|
type: 'error',
|
duration: 3 * 1000
|
})
|
return Promise.reject(error)
|
}
|
)
|
|
export default Axios
|