|
|
@ -133,7 +133,7 @@ const transform: AxiosTransform = { |
|
|
|
const { t } = useI18n(); |
|
|
|
const { t } = useI18n(); |
|
|
|
const { response, code, message, config } = error || {}; |
|
|
|
const { response, code, message, config } = error || {}; |
|
|
|
const errorMessageMode = config?.requestOptions?.errorMessageMode || 'none'; |
|
|
|
const errorMessageMode = config?.requestOptions?.errorMessageMode || 'none'; |
|
|
|
const err: string = response.data.msg?.toString?.() ?? ''; |
|
|
|
const err: string = response?.data?.msg?.toString?.() ?? ''; |
|
|
|
let errMessage = err; |
|
|
|
let errMessage = err; |
|
|
|
// 优先使用预设错误提示
|
|
|
|
// 优先使用预设错误提示
|
|
|
|
const status = error?.response?.status || 200; |
|
|
|
const status = error?.response?.status || 200; |
|
|
@ -142,9 +142,11 @@ const transform: AxiosTransform = { |
|
|
|
// 扩展预设异常处理
|
|
|
|
// 扩展预设异常处理
|
|
|
|
if (code === 'ECONNABORTED' && message.indexOf('timeout') !== -1) { |
|
|
|
if (code === 'ECONNABORTED' && message.indexOf('timeout') !== -1) { |
|
|
|
errMessage = t('sys.api.apiTimeoutMessage'); |
|
|
|
errMessage = t('sys.api.apiTimeoutMessage'); |
|
|
|
} |
|
|
|
} else if (err?.includes('Network Error')) { |
|
|
|
if (err?.includes('Network Error')) { |
|
|
|
|
|
|
|
errMessage = t('sys.api.networkExceptionMsg'); |
|
|
|
errMessage = t('sys.api.networkExceptionMsg'); |
|
|
|
|
|
|
|
// 扩展默认消息,如果都状态码都匹配不到,并且不想获取服务器错误消息,最终会进入到默认错误提示消息
|
|
|
|
|
|
|
|
} else if (errorMessageMode !== 'none') { |
|
|
|
|
|
|
|
errMessage = t('sys.api.errMsgDefault'); |
|
|
|
} |
|
|
|
} |
|
|
|
if (errMessage) { |
|
|
|
if (errMessage) { |
|
|
|
if (errorMessageMode === 'modal') { |
|
|
|
if (errorMessageMode === 'modal') { |
|
|
@ -169,13 +171,9 @@ function createAxios(opt?: Partial<CreateAxiosOptions>) { |
|
|
|
// 其他方案: https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#authentication_schemes
|
|
|
|
// 其他方案: https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication#authentication_schemes
|
|
|
|
authenticationScheme: '', |
|
|
|
authenticationScheme: '', |
|
|
|
timeout: 10 * 1000, |
|
|
|
timeout: 10 * 1000, |
|
|
|
// 基础接口地址
|
|
|
|
|
|
|
|
// baseURL: globSetting.apiUrl,
|
|
|
|
|
|
|
|
// 接口可能会有通用的地址部分,可以统一抽取出来
|
|
|
|
// 接口可能会有通用的地址部分,可以统一抽取出来
|
|
|
|
urlPrefix: urlPrefix, |
|
|
|
urlPrefix: urlPrefix, |
|
|
|
headers: { 'Content-Type': ContentTypeEnum.JSON }, |
|
|
|
headers: { 'Content-Type': ContentTypeEnum.JSON }, |
|
|
|
// 如果是form-data格式
|
|
|
|
|
|
|
|
// headers: { 'Content-Type': ContentTypeEnum.FORM_URLENCODED },
|
|
|
|
|
|
|
|
// 数据处理方式
|
|
|
|
// 数据处理方式
|
|
|
|
transform, |
|
|
|
transform, |
|
|
|
// 配置项,下面的选项都可以在独立的接口请求中覆盖
|
|
|
|
// 配置项,下面的选项都可以在独立的接口请求中覆盖
|
|
|
|