如何解决未捕获的安全错误:iFrame 上的 DOMException代码 18
我是 Web 开发的新手,我最近完成了学位并开始在一家公司工作,担任 Web 开发人员。我独自在这个项目上工作,我遇到了一个我认为我无法解决的问题(如果它有解决方案)。解释起来很复杂,但我会尽力的。
我目前正在构建一个门户网站,用户可以在其中访问我们提供的解决方案。为此,我创建了网站 portal.name.solutions,在此门户中可以访问多个 Web 应用程序。实现它的方法是使用 iFrames(从我读过的 web 组件更好但也更难,所以可能会在未来尝试)大多数 web 应用程序都是通过 iFrame 实现的,没有问题。我只是想 iFrame 一个 URL 并获得完整的功能,而不是添加 JS 或任何东西。
我们尝试将 iFrame 用于自托管的解决方案。
问题来自使用 ASP.NET 构建的 application.name.solutions。我无法 iFrame 它,因此我添加了下一个标题:
Content-Security-Policy: frame-ancestos 'self' *.name.solutions:*
这将允许我 iFrame 解决方案。当 ASP.NET 上出现一个弹出窗口时,问题就出现了。显然,此应用程序使用 iFrame 实现了许多功能。
包括弹出窗口,这个窗口显然在另一个端口中运行。弹出窗口的路径是这样的:application.name.solutions/path/popupdialogs/specificDialog.aspx。 我可以按 X 关闭这个弹出窗口,但是这个弹出窗口通常有两个按钮,它们执行 javascript 来保存信息或关闭窗口并返回到父 iframe。当我尝试使用这些按钮中的任何一个时,它会抛出一个错误并且什么也不做。
我无法调试它,我将添加它抛出的错误,这在 google chrome 和 Firefox 中有所不同,取决于控制台是打开还是关闭。
- 关闭控制台的谷歌浏览器:
Uncaught SecurityError: Blocked a frame with origin "https://aplication.name.solutions" from accessing a frame with origin "https://portal.name.solutions". Protocols,domains,and ports must match.
- 打开控制台的谷歌浏览器:
Uncaught DOMException: Blocked a frame with origin "https://aplication.name.solutions" from accessing a cross-origin frame.
at HTMLAnchorElement.onclick (https://aplication.name.solutions/path/path/popupdialogs/informationDialog.aspx:218:145)
onclick @ informationDialog.aspx:218
- 火狐:
Uncaught DOMException: Permission denied to access property "hidePopWin" on cross-origin object
onclick https://aplication.name.solutions/path/path/popupdialogs/informationDialog.aspx:1
正如所有错误代码所说,我认为这可能是 CORS 问题,并在 portal.name.solutions 中添加了下一个标题:
Access-Control-Allow-Origin: *
它仍然不允许我使用弹出按钮。如果我可以提供更多信息以获得解决方案,我不知道该怎么做,请告诉我。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。