feat: 统一接口请求错误response拦截逻辑

This commit is contained in:
rd
2025-07-05 18:01:26 +08:00
parent 126c9bf081
commit 3b43d85d97

View File

@ -2,7 +2,7 @@
* @Author: 田鑫 * @Author: 田鑫
* @Date: 2023-02-17 11:58:44 * @Date: 2023-02-17 11:58:44
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @LastEditTime: 2025-06-23 05:51:32 * @LastEditTime: 2025-07-05 17:59:59
* @Description: * @Description:
*/ */
@ -16,7 +16,7 @@ const contentType = 'application/json';
const requestTimeout = 30000; const requestTimeout = 30000;
enum HttpStatusCode { enum HttpStatusCode {
OK = 200, Success = 200,
BadRequest = 400, // 请求参数错误 BadRequest = 400, // 请求参数错误
Unauthorized = 401, // token 无效或过期 Unauthorized = 401, // token 无效或过期
NotFound = 404, NotFound = 404,
@ -62,22 +62,30 @@ export class Request {
(res: AxiosResponse) => { (res: AxiosResponse) => {
const { data } = res; const { data } = res;
switch (data.code) { switch (data.code) {
case HttpStatusCode.OK: case HttpStatusCode.Success:
return data; return data;
default: default:
return Promise.reject(data); return Promise.reject(data);
} }
}, },
(err: any) => { (err: any) => {
const { message, code } = err.response?.data ?? {}; const { response } = err;
AMessage.error(message ?? err.message); const status = response?.status;
let errMessage = response?.data?.message ?? err.message;
switch (code) { switch (status) {
case HttpStatusCode.InternalServerError:
errMessage = '系统繁忙,请稍后再试或联系管理员。';
break;
case HttpStatusCode.NotFound:
errMessage = '接口不存在';
break;
case HttpStatusCode.Unauthorized: case HttpStatusCode.Unauthorized:
goUserLogin(); handleUserLogout();
break; break;
} }
AMessage.error(errMessage);
return Promise.reject(err.response); return Promise.reject(err.response);
}, },
); );