最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Tell fetch() to not send a Content-Type header at all - Stack Overflow

programmeradmin2浏览0评论

Is there a way to send an HTTP request with fetch() and tell it to not automatically set a header? I'm trying to get it to send a request without a Content-Type, I can get it to send an empty header

Content-Type: 

like this

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

but can I get it to not include the line at all?

Is there a way to send an HTTP request with fetch() and tell it to not automatically set a header? I'm trying to get it to send a request without a Content-Type, I can get it to send an empty header

Content-Type: 

like this

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

but can I get it to not include the line at all?

Share Improve this question edited Aug 29, 2022 at 11:57 asked Mar 30, 2022 at 0:27 user3064538user3064538 0
Add a ment  | 

1 Answer 1

Reset to default 8

Per step 36 of https://fetch.spec.whatwg/#dom-request and https://fetch.spec.whatwg/#concept-bodyinit-extract, a fetch-initiated request with a request body will always end up with a Content-Type header — because there are only two possible paths a request with a request body can take in the spec:

  1. If you don’t specify any Content-Type header at all in your fetch call, then the browser always automatically on its own sets a Content-Type header for the request; unless…
  2. If you specify a Content-Type header in your fetch call, then the browser uses the value you set.

So because those two are the only possible outes and because the fetch API doesn’t provide any method for pletely removing any browser-set request headers, then if a request has a request body, there’s no way to send the request using the fetch API without it ending up with a Content-Type header.

发布评论

评论列表(0)

  1. 暂无评论