48 lines
1.1 KiB
JavaScript
48 lines
1.1 KiB
JavaScript
// 导入 axios
|
|
import axios from 'axios'
|
|
// 引入 ElMessage 消息提示
|
|
import { ElMessage } from 'element-plus'
|
|
// axios 基础配置
|
|
const service = axios.create({
|
|
// 基础路径
|
|
baseURL: process.env.VUE_APP_BASE_API,
|
|
// 超时时间
|
|
timeout: 5000
|
|
})
|
|
|
|
// 响应拦截器
|
|
service.interceptors.response.use(
|
|
// 请求响应时
|
|
(response) => {
|
|
const { data, meta } = response.data
|
|
if (meta.status === 200 || meta.status === 201) {
|
|
return data
|
|
} else {
|
|
// meta.msg = '拦截器出错'
|
|
ElMessage.error(meta.msg)
|
|
return Promise.reject(new Error(meta.msg))
|
|
}
|
|
},
|
|
// 无响应时
|
|
(error) => {
|
|
// console.log(error.response)
|
|
error.response.data = '后端服务器无响应或者URL错误'
|
|
error.response && ElMessage.error(error.response.data)
|
|
return Promise.reject(new Error(error.response.data))
|
|
}
|
|
)
|
|
|
|
// 请求拦截器
|
|
service.interceptors.request.use(
|
|
(config) => {
|
|
config.headers.Authorization = localStorage.getItem('token')
|
|
return config
|
|
},
|
|
(error) => {
|
|
return Promise.reject(new Error(error))
|
|
}
|
|
)
|
|
|
|
// 导出以供外界使用
|
|
export default service
|