| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- 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 }
|