如何解决SCORM:SecurityError:阻止具有原始来源的框架访问同一原产的跨来源框架
我知道有很多类似的问题,唯一的不同是我从**相同**域中投放的两个页面都得到了这个问题。在下面的示例中可以看到。
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在另一个域中,它正在尝试访问该域。
为了历史,我将其保留。我的答案有详细信息。
解决方法
该问题已解决,并且特定于SCORM协议。
当您打开一段SCORM内容(即一堆html,flash,js和其他媒体文件)时,它要做的第一件事就是试图找到SCORM api。
SCORM api是JS,必须在加载SCORM内容的窗口中。
在某些SCORM软件包中,查找API的函数递归地查找TOP窗口,即启动整个过程的初始窗口。
在我的情况下,这是我站点上的一个窗口,该窗口在我的CDN中弹出了SCORM启动器,该CDN具有不同的域名。
要解决此问题,我要做的就是欺骗浏览器,使SCORM启动器(我在CDN上弹出的窗口)认为是TOP,方法是在其中添加以下两个js行:
{
“fields”:[“first_name",”last_name”,”street”,”city”,”state”,”postal_code”,"email.address”,”age”,”family.estimated_income”,”real_estate.estimated_home_value”,”family.appeared_on”],"identifiers": {
"first_name": "Jim","last_name": "Shoo","street": "123 Main St","city": "Chicago","postal_code": "60600"
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。