2017-07-29 92 views
1

我想使用对象的HTML标记来显示一个PDF,我做了服务器端,但是当我硬编码它的作品的网址,当我把它放在一个变量,它给了我的角度误差,并没有什么表示:
如何消毒角4的URL

unsafe value used in a resource URL context 

我第一次尝试使用消毒剂,但我读了它只能与支持href/src在我的情况下,它的数据是这样的标签可以使用:

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

    </object><br> 

这是我tr IED第一:

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

谢谢

+0

你可以使用一个'iframe'像[这个问题](https://stackoverflow.com/questions/39393431/how-with-angular2-rc-6-disable-sanitize-on-嵌入HTML的标签的其中显示-PDF/39394814#39394814)?编辑:Gunter的解决方案更好 – 0mpurdy

+0

你可以添加一个链接到你阅读它应该只用于'href' /'src'吗? :) – 0mpurdy

回答

3

您需要使用的消毒剂的结果结合

[data]="pdfSrc" 

因为

data="{{pdfSrc}}" 

仅用于字符串绑定这会导致清洁信息离子被剥离

+0

result * typo,also - 提问者提到它不应该被使用,除了'href/src'是真的吗? – 0mpurdy

+0

感谢您的回复,但我仍然有相同的错误 –

+0

是的,这就是我在网上找到的时候发现的 –

1

我发现基于冈特Zöchbauer答案,我用自己的方法解决,但是,而不只是变量我通过了进行消毒这样的URL的功能:

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

    </object> 

,这里是CleanURL功能:

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

然后你应该接受Günter的回答 – Vega

+0

但是Gunter的回答是不正确的....你必须清理URL在这个答案中显示的Angular服务中,否则它将继续去除链接中的“不安全”文本。 –