错误DOMException:阻止源为“ http:// localhost:4200”的框架访问跨域框架

时间:2019-12-10 12:54:56

标签: angular iframe microstrategy

我正在使用MicroStrategy API在我的视图中渲染档案(Angular应用程序)。嵌入过程导致页面中的iframe,create完成后将解析为档案对象:

microstrategy.dossier.create({
      url,
      enableResponsive: true,
      placeholder: this.containerDiv.nativeElement,
    }).then((dossier: any) => {
      this.loadFunctionalities(dossier); <--- resulted dossier
    });

这发生在一个组件中。我还有另一个负责构建过滤器和ToC的组件,因此我可以操纵嵌入式报表。在将档案加载到上方之后,我试图使用生成的档案及其过滤器发出一个事件,以便可以在其他组件中显示它们并在档案中应用更改,如下所示:

loadFunctionalities(dossier: any): any {
    const tableOfContents = dossier.getTableContent();
    dossier.getFilterList().then((filters: any) => {
        const report = {
           dossier, <-- throwing error
           filters,
           tableOfContents,
        };
      this.loadedFilters.emit(report);
    });
  }

但是,当我尝试通过EventEmitter将卷宗带到另一个组件时,我得到了这个错误ERROR DOMException: Blocked a frame with origin "http://localhost:4200" from accessing a cross-origin frame.,我不理解,因为我要做的就是将对象转移到另一个对象组件,而不是另一个域。

有什么解决方法吗?

1 个答案:

答案 0 :(得分:0)

这可能是由于iframe中的http调用(可能是通过事件发射器触发的)引起的。

您的错误的简单复制粘贴可能导致您: https://stackoverflow.com/a/25098153/8684427