Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以获取对象作为标头?_Javascript_Fetch Api - Fatal编程技术网

Javascript 是否可以获取对象作为标头?

Javascript 是否可以获取对象作为标头?,javascript,fetch-api,Javascript,Fetch Api,我试图了解如何根据规范使用whatwgfetch。具体来说,如果我能做到这一点,根据规格 fetch("https://example.org", {headers:{'Content-Type', 'image/jpeg'}}) 这实际上是可能的,也就是说,根据他们的话,“尽可能接近标准的Fetch规范” 当我读这本书的时候,我读到了这个 headers:包含在headers对象或ByteString中的任何要添加到请求中的头 (编辑:我现在已经编辑了MDN页面,这样它们就不再直接谈论标题通

我试图了解如何根据规范使用whatwg
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”)
,但根据规范,这应该是不可能的。你是对的。解释是不准确和误导性的。也许你可以将其改写为一个协作维基。我不想改写它,因为我不理解它:)但好的,我会编辑你的答案,使其实际工作+这是一个可运行的代码段我不知道谢谢,非常感谢。它很酷。