错误错误:在 angular 2 中的资源 URL 上下文中使用了不安全的值

Bhi*_*tur 3 angular

我有以下 HTML 代码

<iframe #originalUrl [hidden]="!showOriginalDoc"  [src]="originalUrl"><span *ngIf="originalUrl===''">Original URL Not Available</span></iframe>
Run Code Online (Sandbox Code Playgroud)

以下角度代码

 if(data.originalResearch.originalUrl===null)
  this.originalUrl='';
 else
  this.originalUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(data.originalResearch.originalUrl);
Run Code Online (Sandbox Code Playgroud)

上面的代码仍然抛出以下错误:

CuratorModalBodyComponent.html:123 错误错误:在 DomSanitizerImpl.vendor../node_modules/@angular/platform-b​​rowser/@angular的资源 URL 上下文中使用了不安全的值(参见http://g.co/ng/security#xss) /platform-b​​rowser.es5.js.DomSanitizerImpl.sanitize (platform-b​​rowser.es5.js?ffb0:3992) at setElementProperty (core.es5.js?0445:9398) at checkAndUpdateElementValue (core.es5.js?0445:9318) ) at checkAndUpdateElementInline (core.es5.js?0445:9252) at checkAndUpdateNodeInline (core.es5.js?0445:12357) at checkAndUpdateNode (core.es5.js?0445:12303) at debugCheckAndUpdateNode (core.es5.js?0445) :13167) 在 debugCheckRenderNodeFn (core.es5.js?0445:13146)

我正在使用 angular 4.4.1

小智 11

以这种格式使用 iframe:

<ifrmae [src]="variable_name">
Run Code Online (Sandbox Code Playgroud)

在 ts 文件中:

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

constructor(private dom:DomSanitizer)
{ 
    variable_name=this.dom.bypassSecurityTrustResourceUrl(url); 
}
Run Code Online (Sandbox Code Playgroud)

  • 虽然此代码可能会回答问题,但提供有关*如何* 和*为什么* 解决问题的附加上下文将提高​​答案的长期价值。 (4认同)