角度绕过SecuritySecurityTrustResourceUrl表示未定义任何参数

时间:2019-01-04 16:26:29

标签: angular typescript angular-dom-sanitizer

我正在尝试使用var xhttp = new XMLHttpRequest(); // overrideMimeType() can be used to force the response to be parsed as XML xhttp.overrideMimeType('text/xml'); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { // if ServiceExceptionReport occurs, place it in alert type "error" var xhr = this.responseXML; if (xhr.documentElement.nodeName === 'ServiceExceptionReport') { fancyAlert(this.responseText, 'error'); } else { fancyAlert(this.responseText, 'info', 'Layer Info'); } } }; xhttp.open("GET", text, true); xhttp.send(); 清理URL。但是,无论我在参数中输入什么值,我总会得到

  

无法读取未定义的属性bypassSecurityTrustResourceUrl

bypassSecurityTrustResourceUrl

返回:

  

错误TypeError:无法读取未定义的属性return this.sanitizer.bypassSecurityTrustResourceUrl('http://www.google.com');       在bypassSecurityTrustResourceUrl

我到过的所有地方都说这应该清理一个URL,并允许它通过iframe显示。我可能会误会要提出的论点。任何帮助将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:0)

此错误与您作为参数传递的内容无关,而与消毒剂有关。

您需要确保像这样在构造函数中导入并声明消毒剂:

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

...

constructor(private sanitizer:DomSanitizer) {    }

答案 1 :(得分:0)

更新:我发现了问题所在。我不确定为什么会这样,但是当我将消毒剂从服务移到我的app.component时,一切工作正常。