当前位置: 首页 > 知识库问答 >
问题:

ReactJS和Express与Axios返回404错误消息

晏和风
2023-03-14

我有一个运行在后端的Node/Express服务器和一个react前端,我正在尝试制作最简单的API——但无论我做什么,我似乎都在post请求中遇到了404错误。我已尝试将代理添加到包中。json,删除代理并在地址i中包含端口。。Ehttp://localhost:5000/createaccount,包括http://localhost:5000只需在post请求中使用“/createaccount”。我尝试过各种各样的CORS和Header,但似乎没有任何效果。

当我去http://localhost:5000/createaccount在我的浏览器中,它确实成功地记录了“hello world”,因此我知道服务器正在运行。我还意识到,现在实际上并没有对发送的数据进行任何处理,只是暂时尝试实际建立连接!我还尝试取消对fetch请求中的大多数内容的注释/注释,但没有效果。

服务器js代码:

// server.js

const express = require("express");
const app = express();
const bodyParser = require("body-parser");
const PORT = 5000;
const cors = require("cors");

app.use(cors());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.get("/createaccount", (req, res) => {
  console.log("test");
  res.append("Access-Control-Allow-Origin", ["*"]);
  res.append("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE");
  res.append("Access-Control-Allow-Headers", "Content-Type");
  res.send("testComplete");
});

app.listen(PORT, function() {
  console.log("Server is running on Port: ", PORT);
});

CreateAccountjs代码:

// Create.js

import React, { Component } from "react";
import axios from "axios";
import { Button, FormGroup, FormControl, FormLabel } from "react-bootstrap";

export default class CreateAccount extends Component {
  constructor(props) {
    super(props);
    this.handleSubmit = this.handleSubmit.bind(this);
    this.handleChange = this.handleChange.bind(this);

    this.state = {
      email: "",
      password: ""
    };
  }

  handleChange = e => {
    this.setState({
      [e.target.id]: e.target.value
    });
  };

  handleSubmit = e => {
    e.preventDefault();
    const data = {
      email: this.state.email,
      password: this.state.password
    };
    fetch("http://localhost:5000/createaccount", {
      method: "POST", // *GET, POST, PUT, DELETE, etc.
      mode: "cors", // no-cors, cors, *same-origin
      headers: {
        "Content-Type": "application/json"
        // "Access-Control-Allow-Origin": "*"
        // 'Content-Type': 'application/x-www-form-urlencoded',
      },
      redirect: "follow", // manual, *follow, error
      referrer: "no-referrer", // no-referrer, *client
      body: JSON.stringify(data) // body data type must match "Content-Type" header
    }).then(res => console.log(res));
  };

  render() {
    return (
      <div className="CreateAccount">
        <form onSubmit={this.handleSubmit.bind(this)}>
          <FormGroup controlId="email">
            <FormLabel>Email</FormLabel>
            <FormControl
              type="email"
              value={this.state.email}
              onChange={this.handleChange.bind(this)}
            />
          </FormGroup>
          <FormGroup controlId="password">
            <FormLabel>Password</FormLabel>
            <FormControl
              value={this.state.password}
              onChange={this.handleChange.bind(this)}
              type="password"
            />
          </FormGroup>
          <Button type="submit">Sign up!</Button>
        </form>
      </div>
    );
  }
}

共有1个答案

呼延修然
2023-03-14

您得到了404,因为您没有在节点服务器中创建POST路由

所以你应该把它放在你的代码里

app.post("/createaccount", (req, res) => {

});

请让我知道我是否正确

 类似资料:
  • 404错误不会作为库中的直接返回,而是作为错误抛出在捕获中。我的问题是现在我可以以某种方式在捕获中查询,错误有哪个数字? 或者如何使用axios库查询它是否是404错误?

  • JSoup-1.8.1 尝试{ Document Document=Jsoup.connect(url.get(); 返回Document.getElementsByTag(“title”).text(); }catch(异常e){ System.out.println(e); 返回null; } org.jsoup.HttpStatusExc0019: HTTP错误获取URL。状态=404, U

  • 我需要发布一个请求包含:一个定义为字符串的xml和一个json。我在正确设置内容和处理JToken方面遇到了问题。 在Fiddler中,原始请求如下所示: 内容类型:多部分/表单数据;boundary=----------------------------acebdf13572468用户代理:Fiddler授权:基本QURNSU46QURNSU4=内容长度:888主机:本地主机 --------

  • 我有PHP 5.3.3与PHP-FPM在172.17.0.163:20533运行。我用nginx和cgi-fcgi测试了它: 返回 所以,PHP-FPM正在工作。 不幸的是,Apache 2.4在PHP-FPM方面存在一些问题: 正在打开http://localhost/test。php返回一个“404未找到”错误。非PHP文件正在工作。查看apache错误日志,一切看起来都很好。 似乎mod_p

  • 这是我的控制器,它将请求映射到以下url

  • 我试图获得一个Spring Boot(1.5.9)项目,以响应一个简单的Hello world消息。但是,我发送的任何请求都会立即返回404异常。 MyBackEndApplication 控制器/指挥机 Build.Gradle 当请求一个页面()时,我得到一个404错误。以下信息显示在此请求的日志中(这里有一个要点,因为我不喜欢将其格式化为引号的方式): 2018-02-05 13:01:37