javascript - 告诉 fetch() 根本不发送 Content-Type header

标签 javascript fetch-api content-type

有没有办法使用 fetch() 发送 HTTP 请求并告诉它不要自动设置 header ?我试图让它发送一个没有 Content-Type 的请求,我可以让它发送一个空的 header

Content-Type: 

像这样

fetch('http://localhost:8000/', {
  method: 'POST',
  headers: {
    'Content-Type': ''
  },
  body: 'some data'
});

但是我可以让它完全不包含该行吗?

最佳答案

根据 https://fetch.spec.whatwg.org/#dom-request 的第 36 步和 https://fetch.spec.whatwg.org/#concept-bodyinit-extract ,带有请求主体的 fetch 发起的请求将始终以 Content-Type header 结束——因为带有请求主体的请求只能采用两种可能的路径在规范中:

  1. 如果您在 fetch 调用中根本没有指定任何 Content-Type header ,那么浏览器总是会自动自动设置一个 Content-为请求输入 header ;除非……
  2. 如果您在 fetch 调用中指定了 Content-Type header ,则浏览器会使用您设置的值。

因为这两个是唯一可能的结果,并且因为 fetch API 没有提供任何方法来完全删除任何浏览器设置的请求 header ,那么如果请求有请求主体,则有如果没有以 Content-Type header 结尾,则无法使用 fetch API 发送请求。

关于javascript - 告诉 fetch() 根本不发送 Content-Type header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71670213/

相关文章:

json - 如何确定 JSON.stringify() 使用哪种编码?

javascript - 单击时如何将特定的 div 滚动到 iframe 的顶部?

javascript - HTML 表格中的动态和复杂行跨度

javascript - 在一个 div 中编写 HTML 标签,然后在另一个 div 中查看所见即所得

javascript - isFinite of space 赋予真值

email - 多部分/替代子类型,客户何时使用?

javascript - 获取 : Reject promise with JSON error object

javascript - 获取 API 错误处理

javascript - 如何连接从api接收到的字符串

asp.net-web-api - 使用 AddMvcCore 进行 webapi 时出现 415 错误