无法连接API端点:注册接口POST请求出现404(Not Found)错误求助
注册API端点404错误排查方案
核心问题:前后端端口不匹配
前端发送请求到http://localhost:3000/api/users/register,但你的后端服务实际运行在5000端口(见server.js里的port = process.env.PORT || 5000)。前端axios用相对路径请求时,默认会继承当前页面的端口(3000),导致请求发到了前端服务而非后端,自然返回404。
解决方法:
在前端的axios配置中添加baseURL,指向后端端口:
// users.js import axios from "axios"; // 配置axios默认基础路径 axios.defaults.baseURL = "http://localhost:5000"; export const RegisterUser = async (registerUser) => { console.log("In RegisterUser =====> ", registerUser); try { const response = await axios.post("/api/users/register", registerUser); return response.data; } catch (error) { return error.response?.data || { message: "请求失败" }; } };
其他潜在问题检查
1. 后端未配置请求体解析中间件
你的server.js里没有添加express.json(),导致后端无法解析JSON格式的请求体,即便请求能到达,也会拿不到req.body的数据,后续逻辑会出错。需要补上:
// server.jsx app.use(cors({ origin: "http://localhost:3000" })); // 添加这行解析JSON请求体 app.use(express.json()); app.use("/api/users", usersRoute);
2. 路由文件引入路径是否正确
确认server.js里的./routes/usersRoutes和实际文件路径一致。比如如果usersRoutes.js在项目根目录的routes文件夹下,这个路径是对的;如果路径层级不对,会导致路由无法挂载,同样返回404。
3. 后端服务是否正常启动
检查终端是否输出Server running on port 5000,如果没有报错,说明服务正常运行;如果有报错(比如数据库连接失败、依赖缺失),先解决这些错误再测试。
内容的提问来源于stack exchange,提问作者tushar
相关产品推荐
相关产品推荐

