我正在使用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.
,我不理解,因为我要做的就是将对象转移到另一个对象组件,而不是另一个域。
有什么解决方法吗?
答案 0 :(得分:0)
这可能是由于iframe中的http调用(可能是通过事件发射器触发的)引起的。
您的错误的简单复制粘贴可能导致您: https://stackoverflow.com/a/25098153/8684427