DOMException:阻止来源为 "http://localhost" 的框架访问跨域框架

DOMException: Blocked a frame with origin "http://localhost" from accessing a cross-origin frame

我在不同的域上有两个 Web 应用程序。

  1. Web 应用程序 1
  2. Web 应用程序 2

我的最终目标如下。

我在 Asp.net MVC - 5 中找到了使用 Google 帐户 API 登录的教程。

https://tutorialslink.com/Articles/How-to-login-with-Google-account-API-in-Aspnet-MVC---5/18

通过使用相同的概念,我正在尝试做以下事情

  1. 从 WebApp1 打开 WebApp2

  2. 从 WebApp2 应用事件重定向到指定的 URL 由 URL + 加密格式的必需数据组成。

  3. 从 WebApp1 不断检查更新 URL 并相应地在 WebAp1 上显示数据。

  4. 关闭 WebApp2。

为了实现上述步骤,我的源代码(WebApp1)如下所示。

var REDIRECT = "http://localhost/Home/Test";
var webApp2 = window.open("WebApp2Url", "CrossDomain", '', true);

var pollTimer = window.setInterval(function () {
try {
    if (webApp2.document.URL.indexOf(REDIRECT) != -1) {
    window.clearInterval(pollTimer);
    // logic to retrieve data from webApp2.document.URL
    webApp2.close();
    debugger;
    }
}
catch (e) {
}
}, 500);

我在代码行

遇到以下错误
[if (webApp2.document.URL.indexOf(REDIRECT) != -1) {]

DOMException: Blocked a frame with origin "http://localhost" from accessing a cross-origin frame.

请任何人指导我解决上述错误。

我曾尝试在 WebApp2 中启用 CORS,但没有成功。

非常欢迎任何设计 WebApp2 的想法。

我已经解决了同样的问题。

在我的 WebApp2 中完成处理后,我将控制重定向到我的 WebApp1,即域 1。

参考:

How do I get around window.opener cross-domain security