ASP.NET Core+React项目登录接口调用出现404错误的原因
问题原因及解决办法
核心原因:前后端请求路径不匹配
你遇到的404错误本质是前端请求的接口路径和后端实际暴露的路径不一致。
ASP.NET Core的MapIdentityApi<ApplicationUser>()方法默认会把所有身份验证相关端点(包括登录接口)挂载到/account路由前缀下,也就是说后端实际的登录接口路径是/account/login。但你的React前端代码里直接请求的是/login,自然找不到对应接口,返回404。
注意:你代码里注释掉的MapGroup("/account")不影响前缀的存在——MapIdentityApi内部已经默认添加了/account前缀,不需要显式声明这个路由组。
两种解决方式
方式1:修改前端请求路径
在login.tsx中,给请求URL加上/account前缀:
var loginurl = ""; if (rememberme == true) { loginurl = "/account/login?useCookies=true"; } else { loginurl = "/account/login?useSessionCookies=true"; }
方式2:修改后端路由前缀
如果不想用/account前缀,可以显式指定空前缀或自定义前缀:
// 去掉默认的/account前缀,直接用/login路径 app.MapGroup("").MapIdentityApi<ApplicationUser>(); // 或者自定义其他前缀,比如/auth // app.MapGroup("/auth").MapIdentityApi<ApplicationUser>();
内容的提问来源于stack exchange,提问作者hmahdavi
相关产品推荐
相关产品推荐

