我正在尝试了解如何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 都接受 header 对象。)
正如 MDN 建议的那样,我也看不到任何关于headers
可以直接实例化的信息。ByteString
我也感兴趣的是不同的实现现在实际接受的内容。