ノード/エクスプレスバックエンドを持つ角型アプリケーションがあります。 IveはhttpProviderを使用して認証インターセプタを実装しようとしました。ローカルストレージにトークンが格納されている場合、アプリケーションは正常に動作し、バックエンドから制限付きデータを取得できますが、ログアウトしてメインビューにリダイレクトしようとすると、TypeError :未定義のプロパティ 'ヘッダ'を読み取ることができません。私が設定のコード行をコメントアウトすると、Iveはインターセプタを登録しました。エラーはなくなりました。私が診断できなかった何らかの理由で、ローカルストレージにトークンがない限り、アプリケーションがクラッシュします。
認証インターセプター:Configオブジェクトに登録さ
angular.module('barmehealth')
.factory('authInterceptor', function(authToken) {
return {
request: function(config) {
var token = authToken.getToken();
if (token) {
config.headers.Authorization = 'Bearer ' + token;
return config;
}
},
response: function(response) {
return response;
}
};
});
:
$httpProvider.interceptors.push('authInterceptor');
Iは次のようにコードを変更することによって問題を解決しようと:
.factory('authInterceptor', function(authToken) {
return {
request: function(config) {
var currentToken = authToken.getToken();
var token = currentToken ? currentToken : null;
if (token) {
config.headers.Authorization = 'Bearer ' + token;
return config;
}
},
response: function(response) {
return response;
}
};
});
オハイオ州の男、骨頭ミス。ありがとう、明らかに期待どおりに動作します。 – Aaron