React+Node.js项目请求/login登录接口报404 Not Found错误
故障原因定位
你遇到的POST http://localhost:5000/login 404 (Not Found)错误和贴出的前端login.js语法无关,404状态码的本质是请求发送成功了,但服务端没有找到你请求的对应接口地址。
排查修复步骤
- 核对后端登录路由配置
你提到账号创建功能运行正常,先对比注册接口和登录接口的配置差异:- 确认后端是否真的注册了
POST方法的/login路由,有没有出现路径拼写错误(比如写成/signin、多写尾斜杠成/login/)、请求方法误配成GET的问题 - 如果你的后端接口统一加了路径前缀(比如注册接口实际是
http://localhost:5000/api/register),那前端登录请求的地址也要对应补上前缀,你当前写的登录地址没有带统一前缀,和后端路由规则不匹配就会返回404
- 确认后端是否真的注册了
- 检查后端路由注册顺序
如果你用Express这类按顺序匹配路由的后端框架,要确认/login路由没有写在404兜底逻辑、通配符路由、静态资源拦截规则的后面,否则请求会被提前拦截返回404 - 验证代理转发规则
如果本地开发配置了前端代理,检查代理规则是否正确把/login请求转发到5000端口的后端服务,有没有路径重写错误导致转发到了不存在的地址。
快速验证方法:直接用Postman或者curl命令向
http://localhost:5000/login发送带正确参数的POST请求,如果工具请求也返回404,即可完全排除前端代码问题,故障点一定在后端路由配置。
如果是接口统一前缀问题,前端代码修正参考:
// 对应后端/api前缀的修正写法 await axios.post('http://localhost:5000/api/login', { email: email, password: password });
内容的提问来源于stack exchange,提问作者Sidas Vidūnas
相关产品推荐
相关产品推荐

