javascript - Angular http : how to call images with custom headers?

标签 javascript angularjs authentication angular-resource

在html View 中,图片是这样显示的:

<img ng-src="{{element.image.url}}"> 

element.image.url 指向一个 url,如:/rest_api/img/12345678

这工作正常,显示图像。

现在,我添加身份验证:

在用户通过身份验证之前,每个资源都会响应 HTTP 错误 401,图像也是如此。当身份验证成功时, token 将放置在自定义 header 中并随每个 $http 请求一起发送,从而允许访问资源:

$http.defaults.headers.common['Authorization'] = token; 

这对于加载了 $resource 的 Json 文件工作正常。但图片的直接链接在认证后仍然是 401。

如何调用带有自定义标题的图片?

或者关于我应该如何做的任何建议。

最佳答案

如前所述here你可以使用 angular-img-http-src ( bower install --save angular-img-http-src 如果您使用 Bower )。

如果你看the code , 它使用 URL.createObjectURL URL.revokeObjectURL 这是still draft 2016 年 4 月 19 日。所以 look if your browser supports it .

为了使用它,声明'angular.img'作为对您的应用程序模块 ( angular.module('myapp', [..., 'angular.img']) ) 的依赖,然后在您的 HTML 中您可以使用 http-src <img> 的属性标签。

在您的示例中,它将是:<img http-src="{{element.image.url}}">

当然,这意味着您已经声明了一个interceptor。使用 $httpProvider.interceptors.push添加您的自定义 header ,或者您已经使用 $http.defaults.headers.common.MyHeader = 'some value'; 为每个请求静态设置 header

关于javascript - Angular http : how to call images with custom headers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21613534/

相关文章:

javascript - 带换行符的 AngularJS 字符串,不间断显示

javascript - AngularJS 项目配置

authentication - 错误 "Membership.Provider"属性必须是 "ExtendedMembershipProvider"的实例

git - 使用 Windows 身份验证进行私有(private) BitBucket git 存储库?

windows-7 - RDP 中的用户名或密码不正确

javascript - JQuery Deferred如何使用resolve和promise来判断函数结束

javascript - Socket.io "on"函数 - 传递附加参数

javascript - 在 firebase firestore 中保存数据时控制台出现错误

javascript - 如何有效且高效地将项目分组到配对的存储桶中(如果存在)

javascript - 有没有更多的 'Angular' 方法来实现这个(两个元素之间的通信)?