如何消毒角度4的网址

时间:2017-07-29 17:58:22

标签: angular

我试图使用Object html标签来显示我做服务器端的PDF,但是当我硬编码它工作的url时,当我把它放在一个变量中它给我一个Angular错误而没有显示:

unsafe value used in a resource URL context

我首先尝试使用消毒剂,但我读到它应该仅用于支持href / src的标签,在我的情况下,它的数据如下:

<object data="{{pdfSrc}}" type="application/pdf" width="100%" height="100%">

    </object><br>

这是我首先尝试的:

pdfSrc: any =this.sanitizer.bypassSecurityTrustUrl('http://my_url.com') ;

谢谢

3 个答案:

答案 0 :(得分:4)

您需要使用绑定清洁剂的结果

[data]="pdfSrc"

因为

data="{{pdfSrc}}"

仅用于导致清除消毒信息的字符串绑定

答案 1 :(得分:4)

你的问题的标题是“如何消毒角4的网址”,但是实际上绕过安全检查而不是消毒。你应该console.log("asd") 代替。

https://github.com/angular/angular/blob/6d1367d29707c2c449fda1adfa8a7177693f680b/packages/core/src/sanitization/sanitization.ts#L122

答案 2 :(得分:1)

我找到了基于GünterZöchbauer的解决方案答案我使用了他的方法,但不仅仅是变量我传递了像这样消毒URl的功能:

    <object [data]="cleanURL(pdfSrc)" type="application/pdf" width="100%" height="100%">

    </object>

这里是CleanURL功能:

cleanURL(oldURL ): SafeUrl {
 return   this.sanitizer.bypassSecurityTrustResourceUrl(oldURL);
 }