当前位置: 首页 > 知识库问答 >
问题:

SCORM:SecurityError:阻止具有原点的帧访问同一原点的跨原点帧

松和安
2023-03-14

我知道有很多类似的问题,唯一的区别是我从同一个**域得到了两个页面。这可以在下面的例子中看到。

    Uncaught DOMException: Blocked a frame with origin "https://content.samba.net" from accessing a cross-origin frame. 
  
at findAPI (https://content.samba.net/00/07/19-10/scorm_support/scorm_support.js:14:10)   
at getAPI (https://content.samba.net/00/07/19-10/scorm_support/scorm_support.js:61:13)   
at https://content.samba.net/00/07/19-10/SCORM.htm:200:16

这不应该只在不同的域之间发生吗?

==================================================================================
当然,在我发布几秒钟后,我发现了问题。SCORM包有一个定位SCORM API的函数。它看起来像顶部和开瓶器。在我的例子中,Window Opener位于另一个域中,它正试图访问该域。
出于历史原因,我将保留它。我的答案很详细。

共有1个答案

王辉
2023-03-14

问题已经解决,这是SCORM协议特有的。
当您打开一段SCORM内容时,它是一组html、flash、js和其他媒体文件,它所做的第一件事就是试图找到SCORM api。
SCORM api是js,必须位于加载SCORM内容的窗口中。
在一些SCORM包中,查找API的函数递归地查找顶部窗口,即启动整个过程的初始窗口。
在我的情况下,是我站点上的一个窗口在我的CDN上弹出了SCORM启动器,它具有不同的域名。

为了解决这个问题,我所要做的就是通过添加以下两行js来欺骗浏览器,使其认为SCORM启动器(我在CDN上弹出的窗口)是顶部:

window.top=window;
window.opener=window;
 类似资料:
  • 我试图打印一个由jspdf生成并加载到iframe的pdf,但我收到了错误消息: DOMException:阻止源为“http://localhost:8084”的帧访问跨源帧。 这是我的代码:

  • 安全错误:阻止源"http://www.app.teste.com"的帧访问跨源帧。 我知道有人发过同样的帖子。但我创造这个是因为我有一个特定的问题。 这个错误发生在第一次访问时,当我按f5重新加载页面时效果很好。

  • 我想允许用户输入他们的网址并在iframe中浏览。在他们点击确认按钮后,我将从iframe中获得网址浏览。 但我从iframe获取url后出错了 例外:com。谷歌。gwt。事件共享。雨伞异常:捕获异常:(SecurityError):阻止了具有原点的帧”http://localhost“从访问交叉原点帧。

  • 我在一个WordPress网站上工作,网站上安装了很多WordPress插件。 wordpress网站上安装的插件具有以下选项: 当我点击“视图细节”选项时,我得到了一个空白屏幕,如下所示,但是当我在一个新的窗口或选项卡上打开时,它会起作用。 在检查控制台,我得到以下错误(当点击查看详细信息未能在同一页面上打开): 问题陈述: 我想知道我需要在wordpress中修改哪个文件来解决这个错误。这个错

  • 我在我的页面上设置了一个iFramework,并使用下面的脚本来删除双导航栏。它在任何浏览器上都能很好地工作,但在Chrome上不起作用,它显示了双垂直导航栏! 我在Chrome收到2个错误消息: > 第一条错误消息: 未捕获的安全错误:阻止源为“null”的帧访问源为“null”的帧。协议、域和端口必须匹配。 它指出了以下错误: 第二个错误消息,它位于jquery-1.10.2.js: 未捕获的

  • 我有一个角度应用程序,客户端post功能无法调用服务器Api post方法。控制台上显示以下错误 “:64736/api/Tool/SaveBookMark:1加载资源失败:服务器响应状态为405(不允许使用方法):4200/#/envision/maps/google:1访问位于”http://localhost:64736/api/Tool/SaveBookMark“起源”http://loc