【发布时间】:2017-09-11 02:54:48
【问题描述】:
我有一些提供图像的 API 端点,但所述图像需要身份验证。我有一个服务 (authenticatedHttp),它是对 $http 的抽象并处理身份验证令牌管理。 (这已确认有效,并且出于所有意图和目的,也可能是$http)
我正在接收响应、获取 blob 并创建对象 URL。所有这些都有效。我已经检查了 blob,可以确认它是正确的。
当我尝试将objectUrl 应用于src 时,问题就出现了。我尝试了一个使用我知道有效但没有身份验证的 sn-p 的简化示例。这在我的 Angular 应用程序中不起作用,但在 vanilla JS 中起作用。
我对@987654326@ 了解不多,但如果它有所作为,当我检查空图像时,我发现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);
});
}
}]);
【问题讨论】:
-
请为将来,如果您需要适当的帮助,请注意标记,angular-tag 指的是 angular
-
@AJT_82 我的错,谢谢。
-
对象 URL 指向浏览器本地的对象,例如blob URLs 数据 URL。删除 blob:在 https 的开头。
-
@bhantol 我试过了。我只是被 ui-router 重定向。
标签: javascript angularjs image blob src