fetch
仕様に従ってwhatwgの使用方法を理解しようとしています。具体的には、仕様上、これができれば。
fetch("https://example.org", {headers:{'Content-Type', 'image/jpeg'}})
これは、実際にはgithub の fetch polyfillで可能です。つまり、彼らの言葉によれば、「標準の Fetch 仕様にできるだけ近い」ということです。
MDNのドキュメントを読むとき、私はこれを読みました
headers
Headers
:オブジェクトまたはに含まれる、リクエストに追加する任意のヘッダーByteString
。
(編集: MDN ページを編集したので、Headers
初期化についてByteString
直接話さなくなりました。)
つまり、通常のオブジェクトは許可されません。
しかし、このドキュメントは完璧ではないので、通常の詳細な方法で書かれている仕様に行きました。
https://fetch.spec.whatwg.org/#request-class
リクエストクラス
Constructor(RequestInfo input, optional RequestInit init) dictionary RequestInit { ... HeadersInit headers; ... } typedef (Headers or sequence<sequence<ByteString>> or OpenEndedDictionary<ByteString>) HeadersInit;
OpenEndedDictionary は、将来の IDL コンストラクトです。次のように使用されることを期待してください。
var meta = { "Content-Type": "text/xml", "Breaking-Bad": "<3" } new Headers(meta)
これを正しく読むと、これはオブジェクトが実際に使用できることを意味します (そして、それOpenEndedDictionary
は... 単なるオブジェクトです)。私はそれを正しく理解していますか?
(私の実験では、Firefox と Chrome の両方がヘッダー オブジェクトを受け入れることを付け加えておきます。)
MDNが示唆するように、直接headers
インスタンス化できることについても何もわかりません。ByteString
私が興味を持っているのは、さまざまな実装が現在実際に受け入れているものです。