fix: 兼容业务层 401 响应码
- 除 HTTP 状态码 401 外,同时处理业务层 code=401 的响应 - 两种 401 均清除登录态并跳转登录页
This commit is contained in:
@@ -12,14 +12,21 @@ const axiosInstance = axios.create({
|
||||
|
||||
const handleError = (error: any) => {
|
||||
|
||||
// 401 未授权:token 过期或未登录,直接跳转登录页
|
||||
// 401 未授权(HTTP 层):token 过期或未登录
|
||||
if (error?.response?.status === 401) {
|
||||
localStorage.removeItem("isLoggedIn");
|
||||
router.push("/login");
|
||||
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) {
|
||||
return Promise.reject(error);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user