web-dev-qa-db-ja.com

フェッチから応答のヘッダーを取得する方法

chrome Version 52.0.2743.82(64-bit)でフェッチを使用しています。応答のすべてのヘッダーを取得します。以下のスニペットはcontent-typeのみを返しますが、 chrome開発ツールは他の多くの応答ヘッダーを表示します。フェッチから他のヘッダーを取得する方法。

  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();
       }
    })

Githubの実装をポリフィリング(手動で上書き)してみました。まだ運がない。

21
udnisap

Ajax経由でクロスドメインコンテンツをリクエストする場合、すべてのヘッダーにアクセスすることはできません。 Originが同じであれば、すべてのヘッダーにアクセスできます。

W3仕様 ここ で説明されているように、Content-TypeLast-modifiedContent-LanguageCache-ControlExpiresPragmaヘッダーにアクセスできます。

さらにhttps://httpbin.org/getは、アクセス可能なヘッダーのリストからContent-Typeヘッダーのみを送信するので、それだけが得られます。

編集: Access-Control-Expose-Headers を送信して、クライアントが応答でアクセスするヘッダーを指定することで、非標準のCORS応答ヘッダーを公開できます。

44
Adnan Umer