我在chrome版本52.0.2743.82(64位)上使用fetch。我想获得响应中的所有标题。以下代码段仅返回content-type
,但如果您查看chrome dev工具,则会显示许多其他响应标头。如何从fetch中获取其他标题。
fetch('https://httpbin.org/get')
.then(response => {
const headers = response.headers.entries();
let header = headers.next();
while (!header.done){
console.log(headers.value);
header = header.next();
}
})
我尝试了polyfilling(手动覆盖)github实现。仍然没有运气。
答案 0 :(得分:36)
通过ajax请求跨域内容时,您无法访问所有标头。如果来源相同,您可以访问所有标题。
如W3规范here中所述,仅Content-Type
,Last-modified
,Content-Language
,Cache-Control
,Expires
,Pragma
标题可以访问。
进一步https://httpbin.org/get
仅从可访问标头列表中发送Content-Type
标头,因此,您只能获得该标头。
编辑:您可以通过发送Access-Control-Expose-Headers
以及您希望客户端在响应中访问的标头来公开非标准CORS响应标头。