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;