javascript - Angularjs 图像未显示 : unsafe:background-image

标签 javascript html css angularjs

我想在我的 Angularjs 应用程序中显示图像,代码如下:

<img  src="background-image: url({{image.url}})" />

其中 image.url 是一个范围变量,其值为 http://localhost/assets/photo/41/photo.jpg 托管在本地主机上的 apache 服务器上.

GET 请求失败,错误:

unsafe:background-image: url(http://localhost/assets/photo/41/photo.jpg):1
GET unsafe:background-image: url(http://localhost/assets/photo/41/photo.jpg) 
net::ERR_UNKNOWN_URL_SCHEME

提前致谢

最佳答案

您错误地使用了 img 标签

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

来自服务器的图片 url 将是 /assets/photo/41/photo.jpg 而不是 http://localhost/assets/photo/41/photo.jpg,当您在同一个域上工作时,不需要实际域。

只是没有弄清楚你想做什么..看起来你可能想使用 background-image 在这种情况下 ng-style 会有帮助

<div ng-style="{'background-image': 'url('+ image.url+')' }"></div>

更新

由于 URL 属于其他域,您希望使用 $sce 服务将该 url 显示为 trustedResourceURL

$scope.getTrustedResourceUrl = function(url){
   return $sce.getTrustedResourceUrl(url)
};

HTML

并获取其他域 URL 以使其正常工作,而无需在 url 之前添加 unsafe: 然后您需要在配置中清理 imgSrc 并将其列入白名单 url regx。

app.config(function($compileProvider) {
    var imgSrcSanitizationWhitelist = /^\s*(https?|ftp|file):|data:image\//;
    $compileProvider.imgSrcSanitizationWhitelist(imgSrcSanitizationWhitelist);
});

关于javascript - Angularjs 图像未显示 : unsafe:background-image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30034869/

相关文章:

html - 有没有办法为 chrome/firefox 禁用特定的 css 功能

html - 表格中的响应图像

javascript - 切换 slider 不会正确更改返回图标

JQuery width() 不返回正确的值

javascript - 将参数映射(值列表)传递给 JQuery

javascript - 根据操作系统更改自定义光标

javascript - jQuery UI 菜单,如何访问选项?

javascript - 验证具有数组作为名称参数的复选框

javascript - 绑定(bind)到鼠标滚轮的平滑水平滚动

html - 使用过渡调整高度和宽度时如何使 <div> 或 img 居中(保持居中)。