为什么不在fetch的响应中找到所有标头?

时间:2016-09-24 03:55:53

标签: javascript httpresponse

我试图从Set-Cookie的回复中截取fetch response header

fetch('https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png', {
	method: 'get'
}).then(function(response) {
    for (var pair of response.headers.entries()) {
        console.log(`${pair[0]}: ${pair[1]}`);
    }
});

但并非所有标题(在开发人员工具的网络中都可以看到)都可以在那里找到!这是为什么?有什么方法可以得到我正在寻找的标题吗?

为了澄清,我不是在寻找cookie,但我很想知道何时发送Set-Cookie标题。

1 个答案:

答案 0 :(得分:2)

您无法读取Set-Cookie标头,因为它被声明为禁止。 github上的fetch polyfill提供了一个合理的解释:

  

与XMLHttpRequest一样,返回的Set-Cookie响应头   服务器是禁止的标头名称,因此不能   用response.headers.get()以编程方式读取。相反,它是   浏览器负责处理正在设置的新cookie(如果   适用于当前的URL)。除非它们是仅限HTTP的新cookie   将通过document.cookie提供。

https://github.com/github/fetch#receiving-cookies