2012-01-20 12 views
9

私はajaxリクエストからレスポンスヘッダを取得しようとしていますが、jQueryのgetAllResponseHeaders xhrメソッドは "Content-Type"ヘッダのみを表示します。誰でも知っている理由は?XmlHttpRequest getAllResponseHeaders()がすべてのヘッダを返さない

これはレスポンスヘッダーです
とAccess-Control-Allow-Credentials:
真のアクセス制御が-ヘッダを許可:-以降に変更された場合は-、のCache-Control、Content-Typeの、キープアライブ、 X--で要求、認可
アクセス制御 - 許可-方法:*
アクセス制御マックスエイジ:1728000
をOPTIONS、POSTは、DELETE、
アクセス制御 - 許可 - 起源をPUT、GET認証:apikey = "apikey1" AuthenticationToken = "62364GJHGJHG"
接続:keep- alive
コンテンツの長さ:240
コンテンツタイプ:application/json;文字セット= UTF-8
X-Poweredのバイ:アプリケーション/:エクスプレス

これはこれそれがログに記録するものである...
Content-Typeの成功機能

params.success = function (response, textStatus, jqXHR) { 
    console.log(jqXHR.getAllResponseHeaders()) 
} 

ですjson; charset = utf-8

+0

このJSONPはクロスドメインコールですか? – epascarello

+0

これはローカルに実行しているノードサービスにjsonを送信するログインフォームです。私のページはhttp://バックボーンで動作しており、http:// localhost:8000にフォームデータを投稿します。それはなぜですか? – screenm0nkey

+1

あなたの解決策は何ですか? – pabera

答えて

6

ちょうどこれに遭遇しました。これは、あなたがCORSリクエストをしていて、あなたがLocationヘッダーを公開していないからです。

あなたは、ExpressでのプリフライトCORSレスポンスにAccess-Control-Expose-Headersを追加する必要があります。この問題を解決する

res.header('Access-Control-Expose-Headers', 'Content-Type, Location'); 
res.send(200); 

+0

私の頭を壁にぶつけて、これは命の恩人だった – chrismarx

関連する問題