美文网首页Angular框架专题
Angular框架中使用DomSanitizer解决base64

Angular框架中使用DomSanitizer解决base64

作者: 听书先生 | 来源:发表于2021-12-09 21:17 被阅读0次
1、问题引入

后台返回人脸识别的照片是base64字符串过来的,但是前端在使用<img [src]='imgUrl' alt=''>时,谷歌浏览器中显示base64;unsafe也就是说拿过来的值是不安全的,因此导致base64图片无法展示在前端。

2、原因

后续查阅相关资料,得知这是Angular框架内部导致的结果,Angular中默认将所有输入的值视为不受信任的,当我们通过{{}}插值表达式、property、attribute等方式,将一个值从模板中插入到DOM中,Angular会自动清除和转义不受信任的值。

3、解决方案

使用DomSanitizer,首先在页面的组件中引入:

import { DomSanitizer } from '@angular/platform-browser';

然后在构造函数中再进行声明一下:

constructor( private sanitizer: DomSanitizer ) {...}

声明好了之后,便开始对base64的Url进行处理。DomSanitizer的设定主要是防止跨站点脚本安全漏洞,通过清除值以便在不同的DOM上下文中安全使用。

this.imgUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.imgUrl);

在去html中直接插入url即可:

 <img [src]="imgUrl " width="100" height="100" />

相关文章

网友评论

    本文标题:Angular框架中使用DomSanitizer解决base64

    本文链接:https://www.haomeiwen.com/subject/hxhqfrtx.html