可以自己再次封装,只是简单的配置下
import axios from "axios";
import { Message } from 'element-ui'
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API, // baseurl 示例:https://baidu.com
// withCredentials: true, //配置携带跨域cookie 可能会导致跨域问题,这里的功能是跨域的情况下也可以携带cookie 但是 如果后台没有配置 可能会产生跨域的情况
timeout: 5000 // 超时限制
});
// 请求拦截器
service.interceptors.request.use(
config => {
// 设置请求头token
// const token = store.getters.token;
// if (token) {
// config.headers["Authorization"] = `Bearer ${token}`;
// }
return config;
},
error => {
return Promise.reject(error);
}
);
const messageList = {
500: '服务器发生错误,请检查服务器。',
502: '网关错误。',
503: '服务不可用,服务器暂时过载或维护。',
504: '网关超时。',
400: '请求接口出现问题',
404: '请求服务不存在'
}
// 响应拦截器(异常判断可以忽略)
service.interceptors.response.use(
async response => {
const { data } = response
if (!data.code || data.code !== 200) {
Message.error(data.message || '请求接口错误')
return Promise.reject(new Error(data.message || 'Error'))
}
return data
},
async error => {
if (error.response) {
Message.error(messageList[error.response.status] || '请求接口错误')
} else if (error.request) {
if (error.request.timeout) {
Message.error('请求超时')
}
} else {
Message.error(error.Message)
}
return Promise.reject(error)
}
)
export default service;