Ionic3中嵌入图片,音频url地址,出现“WARNING: sanitizing unsafe URL value”错误的解决方法

在项目中有时候需要在叫页面上显示图片,音频的信息,在项目中我把图片和音频等文件都转成了base64格式上传到服务器数据库。

在Ionic2项目中比如使用:img,iframe,audio标签的src,a标签的href,需要使用数据库传来的base64数据时,变量直接赋值到url绑定数据的话,会报错,同样,需要引入外部url的资源链接也会报错。

这里写图片描述

网上找了很多资料:才发现是Ionic2和TypeScript中对外部url资源链接做了安全限制
官网文档中对此做了解释:
http://http://g.co/ng/security#xss

所以可以在项目中做以下修改:

1. ts文件中:

//1.在需要使用外部url链接的ts文件中,引入DomSanitizer类
import { DomSanitizer } from '@angular/platform-browser';  

export class safeHtml{  

  safeUrl : any;  

  constructor(private sanitizer: DomSanitizer) {}  

  //2.在需要使用转换后的url地方加上
  getSafeUrl(url){
      this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(url); 
  }

2. html页面中(这里以audio标签为例)

<audio controls="controls" [src]="safeUrl"></audio>

然后就可以成功访问到所需的资源了

下一篇介绍 Angular TypeScript 中的 DomSanitizer

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值