2016-09-24 3 views
1

Я пытаюсь перехватить Set-Cookieresponse header от «s ответ:Почему не все заголовки могут быть найдены в ответе 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]}`); 
 
    } 
 
});

Но не все заголовки (как это можно увидеть инструменты разработчика» fetch сети) можно найти в там! Почему это? Есть ли способ получить заголовок, который я ищу?

Для уточнения, я не ищу файл cookie, но мне интересно знать, когда отправляется заголовок Set-Cookie.

+0

'Fetch API не может загрузить https://google.com/. В запрошенном ресурсе нет заголовка «Access-Control-Allow-Origin». Поэтому на странице https://www.google.com не разрешен доступ. Если непрозрачный ответ отвечает вашим потребностям, установите режим запроса «no-cors» для извлечения ресурса с отключенным CORS. « – guest271314

+0

@ guest271314 Это потому, что я не смог найти какой-либо сайт с« Access-Control-Allow-Origin: * ' , Если вы знаете, пожалуйста, скажите мне. – Mehran

+0

Используйте ''/"' как URL-адрес в текущем вопросе на 'console' – guest271314

ответ

2

Вы не можете прочитать заголовок Set-Cookie, поскольку он объявлен как запрещенный. fetch polyfill на GitHub дает разумное объяснение:

Как и с XMLHttpRequest, заголовок ответа Set-Cookie возвращается из сервера является запретным именем заголовка и, следовательно, не может быть программно прочитать с response.headers. получить(). Вместо этого, это обязанность браузера обрабатывать новые файлы cookie (если применим к текущему URL-адресу). Если только они не являются HTTP-only, новые файлы cookie будут доступны через document.cookie.

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

Смежные вопросы