web-dev-qa-db-ja.com

AngularJS- $ httpから応答ヘッダーを読み取ることができません

インスペクターでリクエストを検査すると、http応答にヘッダーAuthentication(ここで説明:_Authentication:76efbc0946773b62c93e952b502a47acd898200f6f80dc46ac87ffc501c00780_)が含まれますが、headers("Authentication")を呼び出すとnullが返されます。

_return $http({
    method: "GET",
    url: url,
    headers: {
      'Content-Type': "application/json"
    }
}).success(function (data, status, headers, config) {
    console.log(headers("Authentication"));
})
_

私が間違った方法で何をしているのかについて何か考えがありますか?

参考までに、_.then_を使用して、「約束」の方法に戻そうとしましたが、問題は同じです。

10
GeoffreyB

コードは良さそうですが、CORSリクエストの場合、サーバーは応答にAccess-Control-Expose-Headers:{any customheaders}を含める必要があります。

詳細については、以前の質問/回答があります: Angularjsの$ httpを使用するときに応答ヘッダーを読み取る

24
Brad Barber

成功したコールバックは置きます:

console.log(headers('content-type'));
console.log(headers());  // All headers

最初の行はあなたのcasに結果を返すと思います。
2番目に、「認証」を取得しましたか?

カスタムヘッダーは同じドメインに表示されます。クロスドメインの場合、サーバーからAccess-Control-Expose-Headers: Authentication, ...ヘッダーを送信する必要があります。

5
SilvR-O