You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js+React+MySQL登录页出现404错误求助

登录接口404错误的排查与修复方案

以下是导致登录功能404的核心问题及对应修复:

1. Axios请求未指定POST方法

React登录逻辑中,axios请求默认使用GET方法,但后端登录接口是POST /auth/login,GET请求找不到对应路由,直接返回404。

修复(login.jsx):

// 原代码
// const response = await axios('http://localhost:3001/auth/login', { email,password });

// 修改为指定POST方法
const response = await axios.post('http://localhost:3001/auth/login', { email,password });

2. 表单默认提交行为与自定义逻辑冲突

表单设置了action="/auth/login" method="POST",点击提交时会直接绕过自定义的handleSubmit函数,向React所在端口(通常是3000)发送请求,而非后端的3001端口,导致路径不匹配出现404。

修复(login.jsx):
移除表单的action和method属性,完全由自定义handleSubmit处理请求:

// 原代码
// <form action="/auth/login" method="POST">

// 修改为
<form onSubmit={handleSubmit}>

3. 社交登录路由缺少/auth前缀

后端的社交登录路由(如naver-login)挂载在/auth路径下,实际访问路径应为/auth/naver-login,但React中的Link直接指向/naver-login,路径不匹配导致404。

修复(login.jsx):
给所有社交登录的Link添加/auth前缀:

// 原代码
// <Link to="/naver-login">
// <Link to="/apple-login">
// <Link to="/kakao-login">

// 修改为
<Link to="/auth/naver-login"><img src="/Photo/naverLogin.png" alt="naver login" /></Link>
<Link to="/auth/apple-login"><i className="fab fa-apple"></i></Link>
<Link to="/auth/kakao-login"><img src="/Photo/kakaoLogin.png" alt="kakao login" /></Link>

4. 后端登录接口的Promise未正确等待

User.findOne返回的是Promise对象,未添加await就直接判断!user,会导致逻辑错误(user永远为Truthy值),虽不直接导致404,但会引发后续登录失败问题。

修复(login.js):

// 原代码
// const user = User.findOne({where: {email}});

// 修改为添加await
const user = await User.findOne({where: {email}});

内容的提问来源于stack exchange,提问作者Usuhuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 23:07:07