【问题标题】:Fetch API when should I explicitly set the `Content-Type` header?何时应显式设置“Content-Type”标头获取 API?
【发布时间】:2023-03-14 02:52:01
【问题描述】:

fetch 请求上设置Content-Type 标头时的最佳做法是什么?

我今天花了几个小时来追踪一个错误,因为我正在做我认为是一个很好的做法:根据我发送的内容的类型设置我的请求的 Content-Type 标头。

具体来说,我正在发送一个带有Content-Typemultipart/form-data 的POST 请求(用于文件上传)。我不知道的是浏览器会自动设置multipart/form-data 请求的Content-Type 标头,并且它会将所需的boundary 值附加到Content-Type 标头。

我过去在尝试 POST JSON 数据时遇到了问题 没有设置 Content-Type 标头,现在我在尝试 POST 文件时遇到了问题 em> 设置Content-Type 标头。

这里有什么好的经验法则吗?

【问题讨论】:

    标签: javascript http fetch content-type


    【解决方案1】:

    首先对于 Post 方法,我们必须指定我们发送的内容的类型 如果我们发布我们正在使用的文件,例如 JSON 或 text/plain 或图像 new FormData() 构造函数来设置键值对

    FormData 接口提供了一种方法来轻松构造一组表示表单字段及其值的键/值对,然后可以使用 XMLHttpRequest.send() 方法轻松发送这些键/值对。如果编码类型设置为“multipart/form-data”,它使用与表单相同的格式。检查mdn

    在 mdn 上查看这个可以清楚地说明为什么 Content-headers

    中没有使用标头

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      • 2013-12-10
      • 2015-05-05
      • 1970-01-01
      • 1970-01-01
      • 2013-07-22
      • 1970-01-01
      相关资源
      最近更新 更多