From b082e708ae53714c0c5e061a65a5c6abb5d20510 Mon Sep 17 00:00:00 2001 From: yanlongqi Date: Fri, 7 Nov 2025 23:19:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=99=BB=E5=BD=95=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E6=97=B6=E6=97=A0=E9=94=99=E8=AF=AF=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题:登录失败时,401 错误会触发自动跳转到登录页, 导致错误提示来不及显示就被页面刷新覆盖。 解决方案:在 fetchWithAuth 函数中,只有当用户不在登录 页面时才执行 401 错误的自动跳转逻辑,让登录页面能够 正常显示错误提示信息。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- web/src/utils/request.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/src/utils/request.ts b/web/src/utils/request.ts index 7b8ec6a..dd78e1e 100644 --- a/web/src/utils/request.ts +++ b/web/src/utils/request.ts @@ -113,7 +113,8 @@ export const fetchWithAuth = async ( const response = await fetch(url, fetchOptions) // 统一处理 401 未授权错误 - if (response.status === 401) { + // 注意:如果已经在登录页面,不要跳转,让登录页面自己处理错误提示 + if (response.status === 401 && !window.location.pathname.startsWith('/login')) { console.error('Token已过期或未授权,请重新登录') localStorage.removeItem('token') localStorage.removeItem('user')