私はイメージを提供するいくつかのAPIエンドポイントを持っていますが、イメージには認証が必要です。私は、$ httpを超えて抽象化され、認証トークン管理を扱うサービス(authenticatedHttp
)を持っています。 (これは動作することが確認されており、すべての目的と目的のためにも同様に$http
)Angular JSのsrcにイメージblobを適用しますか?
私は応答を受け取り、BLOBを取得してオブジェクトURLを作成しています。これらはすべて動作します。私はブロブをチェックし、それが正しいことを確認することができます。
objectUrl
をsrc
に適用しようとすると問題が発生します。私は作品を知っており、認証なしのスニペットを使って簡単な例を試みました。これはAngularアプリでは機能しませんが、vanilla JSで動作します。
私はObjectUrl
について多くを知らないが、それは違いを作る場合、私は点検したときに、私はそれがsrc
だことがわかり、空のイメージは正しいです、そして私が作成したリンクをクリックした場合には(例を。blob:https://sub.domain.dev/de4db0e0-77c8-44bc-a934-0d270ab81687
)私がによってリダイレクトされますui-router
。
なぜこのようなことが起こり、どうすれば修正できますか?
app.directive('authenticatedSrc', ['authenticatedHttp', function (authenticatedHttp) {
var directive = {
link: link,
restrict: 'A'
};
return directive;
function link(scope, element, attrs) {
var requestConfig = {
cache: 'false'
};
authenticatedHttp.get(attrs.authenticatedSrc, requestConfig).then(function(response) {
var objectUrl = window.URL.createObjectURL(new Blob([response.data], { type: 'image/png' }));
attrs.$set('src', objectUrl);
});
}
}]);
してください、あなたは適切なヘルプが必要な場合は、タグ付けに気づくが、角度のタグが角<= 2を意味し、あなたはangularjsを使用している必要があります。今回私はあなたのためにそれを修正した;) – Alex
@ AJT_82私の悪い、ありがとう。 – Allenph
このチュートリアルはhttps://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURLに役立ちます –