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?
Per step 36 of https://fetch.spec.whatwg.org/#dom-request and https://fetch.spec.whatwg.org/#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:
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…Content-Type header in your fetch call, then the browser uses the value you set.So because those two are the only possible outcomes and because the fetch API doesn’t provide any method for completely 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.