サーバーから 401 "unauthorized" 応答が返されるたびに、angular-http-authを使用してログイン ダイアログを表示しています。
私は冷静なので、サービス内の応答オブジェクトを逆シリアル化することも試みています。たとえば、サービスが をリクエストしcar
、応答がである場合、を使用してそれをオブジェクト{make: Honda, model: Civic}
に逆シリアル化しようとします。Car
transformResponse
例えば:
getCar: function() {
return $http.get('/api/car', {
method: 'GET',
transformResponse: function(data, headers) {
var c = angular.fromJson(data);
return new Car(c);
}
});
}
これはangular-http-authでは機能しません。応答が 401 Unauthorized の場合は、javascript エラーが発生します。transformResponse
これは、応答が 401 だった場合でも、angular がそのコードを実行しようとするためです。
$http
インターセプター ( angular-http-authが使用するもの) はtransformResponse
コードの後に実行されることが判明しました。transformResponse
サーバーの応答が 401 だった場合、そのコードは機能しないため、これは大きな問題ですdata
( .
これは他の誰かにとって問題ですか?どうやってそれを回避しましたか?インターセプターを使用するtransformResponse
場合は使用しないでください。$http