fix: 兼容业务层 401 响应码

- 除 HTTP 状态码 401 外,同时处理业务层 code=401 的响应
- 两种 401 均清除登录态并跳转登录页
This commit is contained in:
developer
2026-07-12 13:44:15 +08:00
parent 59dea6f84c
commit 52b59019d0
+9 -2
View File
@@ -12,14 +12,21 @@ const axiosInstance = axios.create({
const handleError = (error: any) => { const handleError = (error: any) => {
// 401 未授权:token 过期或未登录,直接跳转登录页 // 401 未授权HTTP 层)token 过期或未登录
if (error?.response?.status === 401) { if (error?.response?.status === 401) {
localStorage.removeItem("isLoggedIn"); localStorage.removeItem("isLoggedIn");
router.push("/login"); router.push("/login");
return Promise.reject(error); return Promise.reject(error);
} }
// 业务异常由 validateResponse 负责提示,这里透传,避免被网络错误文案覆盖。 // 401 未授权(业务层):后端 GlobalExceptionHandler 返回 code=401
if (error && typeof error === "object" && error.code === 401) {
localStorage.removeItem("isLoggedIn");
router.push("/login");
return Promise.reject(error);
}
// 其他业务异常(如 code !== 200)透传,由调用方自行提示
if (error && typeof error === "object" && "code" in error && !error.response) { if (error && typeof error === "object" && "code" in error && !error.response) {
return Promise.reject(error); return Promise.reject(error);
} }