发送到Node.js API时,Axios POST请求返回404错误

时间:2020-10-01 13:27:34

标签: javascript node.js reactjs http axios

我正在使用React前端和Node.js后端开发Web应用程序。前端使用Axios将POST请求发送到后端,如下所示:

Register.js

...

handleSubmit = (e) => {
    e.preventDefault();
    const { email, password, name, dateofbirth } = this.state;
    const user = { email, password, name, dateofbirth };

    const url = "http://localhost:9000/register";
    axios
      .post(url, user, {
        headers: {
          "Content-Type": "application/json",
        },
      })
      .then((response) => console.log(response))
      .catch((error) => {
        console.error("You have made a big error. " + error);
        console.log(user);
      });
  };

...

后端收到这样的请求时:


./routes/register.js

...

router.post("/register", async (req, res) => {
  console.log("Inside Home Login");
  res.writeHead(200, {
    "Content-Type": "application/json",
  });
  console.log("Users : ", JSON.stringify(users));
  res.end(JSON.stringify(users));
  
})

...

但是,尝试发送任何内容时出现错误“ POST http:// localhost:9000 / register 404(未找到)”。

1 个答案:

答案 0 :(得分:0)

我的猜测是您要在index.js中进行路由。如果您可以提供代码示例来解决这个问题。

如果是这样,那么事情就是在定义路由,例如

app.use('/register', yourImportedVariable);

在http:// localhost:9000 / register上定义了一条路由。

因此,如果在您的 routes / register.js 文件中使用'/ register'定义GET端点,则您的前端调用必须为 http:// localhost:9000 / register /注册

要解决此问题,请将您的路由重命名为“ /”,或使用上述网址修复您的前端呼叫。