2017-01-18 1 views
1

私はajax(CORS)で投稿リクエストを行い、ヘッダ(Content-Type:application/x-www-form-urlencoded)を設定しています。レスポンスのヘッダを読み込もうとしています。ajaxレスポンス:レスポンスからすべてのヘッダを読み取ることができません

function makePostRequest(url, data, headers, httpVerb, dataType, elementId) { 
    $.ajax({ 
     url: url, 
     type: httpVerb, 
     data: data, 
     headers: headers, 
     dataType: dataType, 
     success: function(data, textStatus, jqXHR) { 
      $("#" + elementId).val(jqXHR.responseText); 
      alert(JSON.stringify(jqXHR)); 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
      $("#" + elementId).val(jqXHR.responseText); 
     } 
    }).then(function(data, status, xhr) { 
     console.log(xhr.getAllResponseHeaders()); 
    }); 
} 

しかし、コンソールにのみ

Content-Type: application/x-www-form-urlencoded; charset=utf-8 

とChromeの開発ツール、私が見ている中で印刷されています:ここで私がやったことです enter image description here

は、これらすべてを取得する方法ヘッダー?

PS:私はクロームではなく、Firefoxの()

を使用しています、私はすべてのヘッダを取得する方法を尋ね、ないなぜ私は(それが不可能な場合、私はこの回答を受け入れます)唯一のヘッダを取得しています。

+1

「ajax get all headers」のGoogle検索で良好な結果が得られているようですか? –

+1

可能な重複した[jqXHR.getAllResponseHeaders()はすべてのヘッダーを返さない](http://stackoverflow.com/questions/5614735/jqxhr-getallresponseheaders-wont-return-all-headers) –

答えて

2

したがって、私はCORSリクエストを作成していました。この場合、セキュリティ上の理由からヘッダーは除外されます。

これらのヘッダをアクセスもする唯一の方法は、レスポンスに含めることですあなたがhereを読むことができるよう、JavaScriptから読み取ることができるヘッダーのリストが含まれますヘッダーAccess-Control-Expose-Headers

7.1.1クロスオリジン要求に対する応答を取り扱う

ユーザエージェントは、これらの単純な応答ヘッダである またはフィールド名のいずれかの値のための ASCIIの大文字と小文字を区別しない一致するの以外のすべての応答ヘッダを除外しなければなりません Access-Control-Expose-Headersヘッダー(ある場合)、CORS API仕様で定義されたAPIに 応答ヘッダーを公開する前に。

関連する問題