import axios from "axios";
import { MessageBox , Message} from 'element-ui'
//创建axios实例
let service = axios.create({
baseURL:process.env.NODE_ENV === "production"
? `http://${window.location.host}/`
: "ip",
withCredentials: true, // 允许携带cookie
headers: {
"x-requested-with": "XMLHttpRequest"
}
});
//添加请求拦截器
service.interceptors.request.use(
config => {
if (config.method === "post" || config.method === "put") {
// post、put 提交时,将对象转换为string, 为处理Java后台解析问题
config.data = JSON.stringify(config.data);
}
// 请求发送前进行处理
return config;
},
error => {
// 请求错误处理
return Promise.reject(error);
}
);
//添加响应拦截器
service.interceptors.response.use(
response => {
if(response.data.code == 401){
Message.closeAll();
MessageBox('会话已失效,即将跳转至登录页面', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
window.location.href = `登录页地址`;
sessionStorage.removeItem("userInfo");
}).catch(() => {
window.location.href = `登录页地址`;
sessionStorage.removeItem("userInfo");
});
let timeout = setTimeout(() => {
window.location.href = `登录页地址`;
window.clearTimeout(timeout);
}, 2000);
}
return response;
},
error => {
let info = {},
{ status, statusText, data } = error.response;
if (!error.response) {
info = {
code: 5000,
msg: "Network Error"
};
} else {
// 此处整理错误信息格式
info = {
code: status,
data: data,
msg: statusText
};
}
}
);
export default service;