| @@ -9,12 +9,16 @@ import { clearSessionToken, getAccessToken } from './access'; | |||||
| import { setRemoteMenu } from './services/session'; | import { setRemoteMenu } from './services/session'; | ||||
| import { gotoLoginPage } from './utils/ui'; | 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 网络请求配置 | * Umi Max 网络请求配置 | ||||
| * @doc https://umijs.org/docs/max/request#配置 | * @doc https://umijs.org/docs/max/request#配置 | ||||
| */ | */ | ||||
| export const requestConfig: RequestConfig = { | export const requestConfig: RequestConfig = { | ||||
| errorConfig: {}, | |||||
| requestInterceptors: [ | requestInterceptors: [ | ||||
| (url: string, options: AxiosRequestConfig) => { | (url: string, options: AxiosRequestConfig) => { | ||||
| const headers = options.headers ?? {}; | const headers = options.headers ?? {}; | ||||
| @@ -30,26 +34,32 @@ export const requestConfig: RequestConfig = { | |||||
| }, | }, | ||||
| ], | ], | ||||
| responseInterceptors: [ | 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 { | } else { | ||||
| console.log(message, data); | |||||
| message.error(data?.msg ?? '请求失败'); | |||||
| popupError('请求失败'); | |||||
| return Promise.reject(response); | return Promise.reject(response); | ||||
| } | } | ||||
| } else { | |||||
| message.error('请求失败'); | |||||
| return Promise.reject(response); | |||||
| } | |||||
| }, | |||||
| }, | |||||
| (error: Error) => { | |||||
| popupError(error.message ?? '请求失败'); | |||||
| return Promise.reject(error); | |||||
| }, | |||||
| ], | |||||
| ], | ], | ||||
| }; | }; | ||||