import { message } from 'antd' import axios from 'axios' // 引入axios // import { getToken } from '@/utils/auth' const baseURL = process.env.REACT_APP_BASE_URL const tokenName = 'token' const service = axios.create({ baseURL // timeout: 99999 }) // request拦截器 service.interceptors.request.use( config => { if (!config.headers) { config.headers = {}; } // config.headers.Authorization = `Bearer ${localStorage.getItem('token')}`; // config.headers.Authorization = `${localStorage.getItem(tokenName)}`; return config }, error => { // Do something with request error console.log(error) // for debug throw error } ) const logout = () => { // 如果判断在iframe内,仅向iframe外部通知 if (window.self !== window.top) { // console.log('在iframe中'); if (window.parent) { window.parent.postMessage({ type: 'logout' }, '*'); } } else { window.postMessage({ type: 'logout' }, '*'); }; } // response 拦截器 service.interceptors.response.use( response => { /** * code为非0是抛错 可结合自己业务进行修改 */ const res = response?.data if (response.status === 401 || res?.errcode === 401) { message.warning('权限校验失败!') return; } else if (response.status === 440) { logout() return; }else if(res?.type==='application/msexcel'||res?.type==='application/zip'){ return response } // 17: token失效 if (res?.state == 17) { logout() return; } return res }, error => { console.log(`err${error}`) // for debug if (error?.response?.status === 440) { logout(); return; } if (error?.response?.status === 401) { message.warning('权限校验失败!') return; } // Message({ // message: error.message, // type: 'error', // duration: 5 * 1000 // }) return Promise.reject(new Error('网络异常,请联系管理员')); } ) export default service export { baseURL }