diff --git a/src/api/index.ts b/src/api/index.ts index 36a3257d..1bca1f9f 100755 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -70,42 +70,41 @@ api.interceptors.response.use( * 规则是当 status 为 1 时表示请求成功,为 0 时表示接口需要登录或者登录状态失效,需要重新登录 * 请求出错时 error 会返回错误信息 */ - if (response.data.status === 1) { - if (response.data.error !== '') { - toast.warning('Warning', { - description: response.data.error, - }) - return Promise.reject(response.data) + if (typeof response.data === 'object') { + if (response.data.status === 1) { + if (response.data.error !== '') { + toast.warning('Warning', { + description: response.data.error, + }) + return Promise.reject(response.data) + } } + else { + useUserStore().requestLogout() + } + return Promise.resolve(response.data) } else { - useUserStore().requestLogout() + return Promise.reject(response.data) } - return Promise.resolve(response.data) }, async (error) => { // 获取请求配置 const config = error.config - // 如果配置不存在或未启用重试,则直接处理错误 if (!config || !config.retry) { return handleError(error) } - // 设置重试次数 config.retryCount = config.retryCount || 0 - // 判断是否超过重试次数 if (config.retryCount >= MAX_RETRY_COUNT) { return handleError(error) } - // 重试次数自增 config.retryCount += 1 - // 延迟重试 await new Promise(resolve => setTimeout(resolve, RETRY_DELAY)) - // 重新发起请求 return api(config) },