必要な HMAC ヘッダーをリクエストに追加する必要があります。これはそれほど難しいことではありませんが、イライラし始めています。次のコードの何が問題になっていますか。私が行っている実際のhttp呼び出しは機能します。この呼び出しを自分で実行したところ、必要なデータが返されました。インターセプター内では機能しません。
このインターセプターにホワイトリストまたはブラックリスト、およびその他のカスタマイズ可能なデータを追加する前に、現在の実装を機能させたいだけです。これは hmac に関する質問ではありませんが、約束があります。
このインターセプターのエラーは、$http(...) で始まるプロミス行全体にあります。このブロックを削除してそのまま使用すると(約束の実行を除く)、正常に動作します。行のコメントを外すとすぐに、ループに陥ってクロムがクラッシュします。私が読んだどこでも、これがその方法であると書かれていますが、これは明らかに機能しません。
function requestInterceptor(config){
var $http = $injector.get('$http');
var deferred = $q.defer();
$http.get(hmacApiEndpoint, {cache: true}).then(function(data){
console.log('HMAC - Success', data)
deferred.resolve(config)
}, function(config){
console.log('HMAC - Error', config)
deferred.resolve(config)
})
return deferred.promise;
}
return {
request: requestInterceptor
};
これは、angulars $http promise が「$q」の実装とは異なる実装であるという事実と関係がありますか?