2016-09-24 14 views
1

我試圖從fetch迴應:爲什麼不能在提取的響應中找到所有標題?

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

但並不是所有的報頭(如可以在開發者工具中看到的「攔截Set-Cookieresponse header網絡)中可以找到那裏!這是爲什麼?有什麼方法可以找到我要找的標題嗎?

只是爲了澄清,我不是在尋找cookie,但我很想知道何時發送了Set-Cookie標頭。

+0

'提取API不能加載https://google.com/。請求的資源上沒有「Access-Control-Allow-Origin」標題。原因'https://www.google.com'因此不允許訪問。如果一個不透明的響應滿足您的需求,請將請求的模式設置爲'no-cors'以取消禁用CORS的資源。' – guest271314

+0

@ guest271314這是因爲我無法找到任何帶'Access-Control-Allow-Origin:*' 。如果你知道的話,請告訴我。 – Mehran

+0

在'console'處使用'「/」'作爲當前問題的URL。 – guest271314

回答

2

您不能讀取Set-Cookie標題,因爲它被聲明爲禁止。該fetch填充工具GitHub上提供了一個合理的解釋:

像使用XMLHttpRequest,從 返回的Set-Cookie響應報頭中的服務器是禁止的頭名,因此不能 與response.headers編程讀取。得到()。相反,瀏覽器有責任處理新的Cookie設置(如果 適用於當前URL)。除非它們僅限HTTP,否則將通過document.cookie提供新的cookie 。

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

相關問題