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

MERN栈后端CRUD正常 React/Axios前端请求404错误求助

问题:React+Axios连接Node/Express后端CRUD报404错误

后端CRUD接口经Postman测试正常,但通过React+Axios调用时抛出AxiosError: Request failed with status code 404错误。

后端相关代码

后端路由及创建用户的处理函数:

userRouter.route("/").post(createUser);

const createUser = async (req, res) => {
  try {
    const newUser = await User.create(req.body);
    res.status(201).json({
      status: "success",
      data: { newUser },
    });
  } catch (err) {
    res.status(400).json({
      status: "failed",
      message: err,
    });
  }
};

前端请求代码

React表单提交时的Axios请求函数:

const Submit = (e) => {
    e.preventDefault();
    axios
      .post("http://localhost:3040/createUser", {
        name,
        email,
      })
      .then((result) => console.log(result))
      .catch((err) => console.log(err));
  };

问题分析与解决方案

1. 路由路径不匹配

后端userRouter大概率不是直接挂载在根路径/下。比如如果后端是这样挂载路由的:

app.use('/api/users', userRouter);

那实际创建用户的接口路径应为/api/users,但前端请求的是/createUser,完全不匹配导致404。

解决:

  • 核对后端userRouter的挂载前缀,将前端请求地址改为对应路径,比如http://localhost:3040/api/users。
  • 后端仅在userRouter的根路径(/)配置了POST接口,不存在/createUser这个路由,需删除前端请求路径中的createUser部分,替换为后端实际的路由前缀。

2. 跨域配置缺失(附带排查)

虽然报错是404,但如果后端未配置跨域,浏览器拦截请求后也可能表现为异常状态码。可补充跨域配置验证:

npm install cors

在后端入口文件添加:

const cors = require('cors');
app.use(cors());

3. 端口/地址不一致

确认后端服务确实运行在3040端口,前端请求的地址、端口与后端启动日志显示的一致。

额外检查

查看后端路由挂载逻辑,确认是否有路由前缀、中间件(如身份验证)导致路径无法匹配,或是否存在路由顺序问题(比如404兜底路由提前匹配)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 12:03:11