Browse Source

fix: 修复下载文件失败没有提示的问题

pull/191/head
cp3hnu 10 months ago
parent
commit
d428d07936
1 changed files with 32 additions and 7 deletions
  1. +32
    -7
      react-ui/src/requestConfig.ts

+ 32
- 7
react-ui/src/requestConfig.ts View File

@@ -53,7 +53,7 @@ export const requestConfig: RequestConfig = {
],
responseInterceptors: [
[
(response: AxiosResponse) => {
async (response: AxiosResponse) => {
const { status, data, config } = response || {};
const options = config as RequestOptions;
const skipErrorHandler = options?.skipErrorHandler;
@@ -63,20 +63,45 @@ export const requestConfig: RequestConfig = {
Loading.hide();
}
if (status >= 200 && status < 300) {
if (status === 204) {
// 无内容或者无需验证
if (status === 204 || skipValidating) {
return response;
} else if (data && (skipValidating || data instanceof Blob || data.code === 200)) {
}

if (data && data.code === 200) {
return response;
}

// Blob 数据
if (data && data instanceof Blob && data.size > 0) {
// 下载文件失败时,返回的是 JSON 数据,格式为:{code: 500, msg: "xxx"}
if (data.type === 'application/json') {
try {
const text = await data.text();
const json = JSON.parse(text);

if (json.code === 500) {
popupError(json.msg || '请求失败', skipErrorHandler);
return Promise.reject(json);
}
} catch (error) {
console.error('JSON 解析失败', error);
}
}
return response;
} else if (data && data.code === 401) {
}

// Token 失效
if (data && data.code === 401) {
clearSessionToken();
setRemoteMenu(null);
gotoLoginPage(false);
popupError('请重新登录');
return Promise.reject(response);
} else {
popupError(data?.msg ?? '请求失败', skipErrorHandler);
return Promise.reject(response);
}

popupError(data?.msg ?? '请求失败', skipErrorHandler);
return Promise.reject(response);
} else {
popupError('请求失败', skipErrorHandler);
return Promise.reject(response);


Loading…
Cancel
Save