簡體   English   中英

告訴 fetch() 根本不發送 Content-Type header

[英]Tell fetch() to not send a Content-Type header at all

有沒有辦法使用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-requesthttps://fetch.spec.whatwg.org/#concept-bodyinit-extract的第 36 步,帶有請求主體的fetch發起的請求將總是以Content-Type header 結尾——因為在規范中,帶有請求主體的請求只能采用兩種可能的路徑:

  1. 如果您在fetch調用中根本沒有指定任何Content-Type header,那么瀏覽器總是會自動為請求設置Content-Type header; 除非…
  2. 如果您在fetch調用中指定Content-Type header,則瀏覽器將使用您設置的值。

因此,因為這兩個是唯一可能的結果,並且因為fetch API 沒有提供任何方法來完全刪除任何瀏覽器設置的請求標頭,所以如果請求具有請求正文,則無法使用fetch API 發送請求沒有它以Content-Type header 結尾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM