Javascript 是否可以获取对象作为标头?
我试图了解如何根据规范使用whatwgJavascript 是否可以获取对象作为标头?,javascript,fetch-api,Javascript,Fetch Api,我试图了解如何根据规范使用whatwgfetch。具体来说,如果我能做到这一点,根据规格 fetch("https://example.org", {headers:{'Content-Type', 'image/jpeg'}}) 这实际上是可能的,也就是说,根据他们的话,“尽可能接近标准的Fetch规范” 当我读这本书的时候,我读到了这个 headers:包含在headers对象或ByteString中的任何要添加到请求中的头 (编辑:我现在已经编辑了MDN页面,这样它们就不再直接谈论标题通
fetch
。具体来说,如果我能做到这一点,根据规格
fetch("https://example.org", {headers:{'Content-Type', 'image/jpeg'}})
这实际上是可能的,也就是说,根据他们的话,“尽可能接近标准的Fetch规范”
当我读这本书的时候,我读到了这个
headers
:包含在headers
对象或ByteString
中的任何要添加到请求中的头
(编辑:我现在已经编辑了MDN页面,这样它们就不再直接谈论标题通过ByteString
初始化了。)
这意味着不允许使用普通对象
但是,这个文档并不完美,所以我选择了规范,它们是以通常的详细方式编写的,我发现:
请求类
Constructor(RequestInfo input, optional RequestInit init)
dictionary RequestInit {
...
HeadersInit headers;
...
}
typedef (Headers or sequence<sequence<ByteString>> or OpenEndedDictionary<ByteString>) HeadersInit;
构造函数(RequestInfo输入,可选RequestInit)
字典请求初始化{
...
HeadersInit头;
...
}
typedef(标题或序列或OpenEndDictionary)标题列表;
OpenEndDictionary是未来的IDL构造。希望它能被使用
因此:
var meta = { "Content-Type": "text/xml", "Breaking-Bad": "<3" }
new Headers(meta)
var meta={“Content Type”:“text/xml”,“Breaking Bad”:“您可以尝试使用以下代码:
var r=new请求('test.html'{
标题:{
“自定义标题”:“测试”,
“内容类型”:“图像/jpeg”
}
});
对于(h of r.headers)alert(JSON.stringify(h));
“openenddictionary
definition”谷歌搜索只是返回一些随机的github问题和websters字典中“open-end”一词的定义。这里的问题是,openenddictionary
还没有在任何地方定义。(这就是他们的意思)openenddictionary
是未来的IDL构造。”)它在HeadersInit
的typedef中使用,但是规范没有正式说明OpenEndDictionary
是什么或者它是如何工作的。规范给出了一个小说明,说明了当作者开始定义它时,它可能会如何工作。因此,不清楚特定的实现是否能够在这方面符合规范在这一点上,因为规范在这一点上是明确的模糊的(并且有一天会变得不那么模糊)。好吧,在这种情况下,我在我的问题中添加了一个注释:“我还感兴趣的是不同的实现现在实际接受了什么。”“任何您想要添加到请求中的头,包含在…ByteString中。”。“-对我来说,这听起来像是可以从字符串中创建Headers对象,如newheaders(“Header:Test”)
,但根据规范,这应该是不可能的。你是对的。解释是不准确和误导性的。也许你可以将其改写为一个协作维基。我不想改写它,因为我不理解它:)但好的,我会编辑你的答案,使其实际工作+这是一个可运行的代码段我不知道谢谢,非常感谢。它很酷。