【问题标题】:Do fetch API always expects a response?fetch API 是否总是期望得到响应?
【发布时间】:2020-10-09 03:35:29
【问题描述】:

获取 API 是否总是期望得到响应?我遇到了一个问题,我正在从我的反应应用程序进行 POST AJAX 调用。 API 调用不返回任何响应。所有重定向都由服务器端处理。

我可以只提交表单发布请求吗?

【问题讨论】:

  • 你的问题真的没有意义。没有响应还是有重定向响应?如果没有响应,那么为什么提交表单会给您带来比使用 fetch 更好的结果?
  • 您的问题是“为什么,当我使用 fetch 发出请求并获得重定向响应时,新 URL 不会自动加载到主浏览器窗口中,并且没有我编写和 JS 来实现这一点?”?
  • @Quentin 是的,没有回应
  • @Quentin 你如何使用just fetch?仍然 fetch 需要响应,对吧?
  • 我们不知道 API 期望提交给它的数据如何格式化……我们也不知道您是如何提交数据的(因为您未能包含 minimal reproducible example) .

标签: javascript reactjs fetch fetch-api


【解决方案1】:

是的,需要有 HTTP 响应,否则会发生错误。但是,您不需要响应body

也就是说,如果您的服务器端脚本只返回标头而实际上不返回任何数据,那么这很好,并且与 Fetch API 和任何其他 HTTP 客户端兼容。事实上,如果您愿意,您甚至可以使用204 No Content 状态码,但这不是必需的。

【讨论】:

  • 我们可以看到OP的问题中的响应截图。它有响应头和响应体。
  • @dragonfly fetch('https://example.com')....你在问什么?
  • @brad,它需要是一个 POST 调用
  • @dragonfly 然后将方法设置为 POST:fetch('https://example.com', {method: 'POST'}) 再说一遍,您实际上要问的是什么?
  • @brad -- 有没有办法将简单的表单连同表单数据一起提交
【解决方案2】:
render() {
return (
  <form method="post" action="logpage">
   <input type="hidden" name="csrf-token" value="{{{ csrf_token() }}}" />
   //I'm sure this doesn't have csrf_token.

   <input type="text" name ="word" value={this.state.word || ''}/>
   <button onClick={this.submit} className="btn btn-flat btn-brand waves-attach waves-effect" data-dismiss="modal" type="button">Save</button>
  </form>
  );
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 2013-01-15
    • 2019-03-21
    • 2020-02-24
    • 2021-05-25
    • 2016-12-14
    相关资源
    最近更新 更多