【问题标题】:fetch formdata response from php server从 php 服务器获取 formdata 响应
【发布时间】:2020-10-26 09:21:29
【问题描述】:

我了解 fetch() 响应可让您从服务器接收 formData。我搜索了一个实现此功能的示例,但没有找到一个。所有示例都讨论了从客户端上传(发布)formData 到服务器,但反之则不然。这并没有解释响应的 .formData() 方法。

那么,您能否将我指向任何链接,其中包含使用 fetch() 响应的 .formData() 方法从 PHP 服务器接收表单数据的示例。

谢谢

【问题讨论】:

  • developer.mozilla.org/en-US/docs/Web/API/Body/formData 展示了基本思想。但是服务器以 formData 格式返回内容是非常不寻常的——我从未见过这种情况发生。当它被序列化时,它实际上并不是一种非常方便的格式。通常,服务器会返回纯文本、HTML、JSON 或 XML(当然也可以是二进制文件数据)。您是否真的遇到过这种情况,或者您是否正在考虑对您的服务器进行编程来做到这一点?恕我直言,在响应中使用 JSON 会容易得多,例如 - 它非常受欢迎是有充分理由的。而且 fetch 也可以轻松读取。
  • 好的。但是这个 '.formData()' 方法是干什么用的呢?
  • 他们为什么要添加一个几乎没人需要的方法?
  • 我提供的文档顶部的黄色“注释”解释了它的主要用途。 (重要的是要意识到这可以从传出 request 以及传入响应的正文中读取。而且,“几乎没有人”与“没有人”不同 - 如果 有人需要它那么它就很有用。即使是所有 Web 开发人员中的 1% 仍然是数千人!)
  • 感谢您的耐心等待。正如我从您的解释和黄色注释中了解到的那样,此方法与其他获取响应的方法(文本、json、blob)的方向相反。当这些方法从服务器读取响应时,formData() 方法在请求/响应到达服务器的途中读取/拦截它。真的很不寻常。再次感谢。

标签: javascript php fetch response


【解决方案1】:

https://developer.mozilla.org/en-US/docs/Web/API/Body/formData 演示基本思想:

response.formData()
.then(function(formdata) {
  // do something with your formdata
});

但是服务器以 formData 格式返回数据是非常不寻常的——我从未见过这种情况。当它被序列化时,它实际上并不是一种非常方便的格式。通常,服务器会返回纯文本、HTML、JSON 或 XML(当然也可以是二进制文件数据)。

文档顶部的黄色“注释”解释了它的主要用途。它说:

这主要与服务人员有关。如果用户提交表单 并且服务人员拦截了请求,例如,您可以 在其上调用 formData() 以获取键值映射,修改一些字段, 然后将表单继续发送到服务器(或在本地使用)。

(重要的是要意识到这可以从传出请求的正文以及传入的响应中读取。而且类似的text()、json()blob() 等方法都可以在两者中使用方向也是 - 这些方法附加到 Body 对象。请求和响应都可以包含一个 Body。所以实际上这些方法并不关心它是请求还是响应,它们只是尝试从 Body 中读取发生的任何事情是。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    相关资源
    最近更新 更多