| @@ -9,12 +9,16 @@ import { clearSessionToken, getAccessToken } from './access'; | |||
| import { setRemoteMenu } from './services/session'; | |||
| import { gotoLoginPage } from './utils/ui'; | |||
| // [antd: Notification] You are calling notice in render which will break in React 18 concurrent mode. Please trigger in effect instead. | |||
| const popupError = (error: string) => { | |||
| message.error(error); | |||
| }; | |||
| /** | |||
| * Umi Max 网络请求配置 | |||
| * @doc https://umijs.org/docs/max/request#配置 | |||
| */ | |||
| export const requestConfig: RequestConfig = { | |||
| errorConfig: {}, | |||
| requestInterceptors: [ | |||
| (url: string, options: AxiosRequestConfig) => { | |||
| const headers = options.headers ?? {}; | |||
| @@ -30,26 +34,32 @@ export const requestConfig: RequestConfig = { | |||
| }, | |||
| ], | |||
| responseInterceptors: [ | |||
| (response: AxiosResponse) => { | |||
| const { status, data } = response || {}; | |||
| if (status >= 200 && status < 300) { | |||
| if (data && (data instanceof Blob || data.code === 200)) { | |||
| return response; | |||
| } else if (data && data.code === 401) { | |||
| clearSessionToken(); | |||
| setRemoteMenu(null); | |||
| gotoLoginPage(false); | |||
| message.error('请重新登录'); | |||
| return Promise.reject(response); | |||
| [ | |||
| (response: AxiosResponse) => { | |||
| const { status, data } = response || {}; | |||
| console.log(message, data); | |||
| if (status >= 200 && status < 300) { | |||
| if (data && (data instanceof Blob || data.code === 200)) { | |||
| return response; | |||
| } else if (data && data.code === 401) { | |||
| clearSessionToken(); | |||
| setRemoteMenu(null); | |||
| gotoLoginPage(false); | |||
| popupError('请重新登录'); | |||
| return Promise.reject(response); | |||
| } else { | |||
| popupError(data?.msg ?? '请求失败'); | |||
| return Promise.reject(response); | |||
| } | |||
| } else { | |||
| console.log(message, data); | |||
| message.error(data?.msg ?? '请求失败'); | |||
| popupError('请求失败'); | |||
| return Promise.reject(response); | |||
| } | |||
| } else { | |||
| message.error('请求失败'); | |||
| return Promise.reject(response); | |||
| } | |||
| }, | |||
| }, | |||
| (error: Error) => { | |||
| popupError(error.message ?? '请求失败'); | |||
| return Promise.reject(error); | |||
| }, | |||
| ], | |||
| ], | |||
| }; | |||