无法在 React 中使用 fetch 执行 POST 操作

Posted

技术标签:

【中文标题】无法在 React 中使用 fetch 执行 POST 操作【英文标题】:Unable to perform POST operation in React with fetch 【发布时间】:2020-11-21 11:22:10 【问题描述】:

我正在尝试使用 ReactJS 执行 POST 请求并使用 Spring-boot 在 Mongo 数据库中进行更新。在编译代码期间,我没有收到任何错误,但是在尝试执行 POST 操作时,我没有得到输出。当我刷新页面时,我在数据库中得到一个带有 ID 但没有名称的条目。

这是反应应用程序的代码:

async handleSubmit(event)
    event.preventDefault();
    const item = this.state;

    await fetch(`/person/new`, 
      method : 'POST',
      headers : 
        'Accept': 'application/json',
        'Content-Type': 'application/json'
      ,
      body : JSON.stringify(item),
    );
    
    this.props.history.push("/change");
  

Spring-boot中POST的代码是:

public Integer Counter()
    List<Person> p = pr.findAll();
    c = 1;
    while(pr.existsById(c)) 
        c++;
    
    return c;


@PostMapping("/new")
public void insertPerson(@RequestBody Person person)
    Integer id = Counter();
    String name = person.getName();
    pr.save(new Person(id,name));
    c++;

这是我的网站在执行代码时的样子↓

How my site looks

请帮帮我。

PS:DELETE 操作虽然有效。

【问题讨论】:

首先检查您的网络选项卡,因此请确保前端向后端发送正确格式的数据。 【参考方案1】:

我认为这是你如何调用这个函数的问题。我建议像这样调用它:onClick = async (e) =&gt; await this.handleSubmit(e);

【讨论】:

以上是关于无法在 React 中使用 fetch 执行 POST 操作的主要内容,如果未能解决你的问题,请参考以下文章

如何在带有 Jest 的 react-native 中使用模拟的 fetch() 对 API 调用进行单元测试

React + Fetch + Json。 TypeError:无法读取未定义的属性

React 无法使用 Fetch API 下载数据 [重复]

调用 Fetch API 后没有得到任何东西 - React Native

React内部useEffect中使用fetch的问题

Fetch API 无法加载“.php”本地文件 - React JS + PHP