Javascript SecurityError:“跨原点对象”带有窗口。在React上打开弹出窗口

Javascript SecurityError:“跨原点对象”带有窗口。在React上打开弹出窗口,javascript,reactjs,cross-domain,Javascript,Reactjs,Cross Domain,类似问题 我正在本地主机上创建两个react应用程序,一个在端口3000上,另一个在端口3001上。localhost:3000上的项目是一个SigninAPI,类似于GoogleOAuth。localhost:3001上的应用程序需要打开一个弹出窗口,以允许用户登录localhost:3000,并最终将用户帐户返回到localhost:3001 本地主机:3001相关代码: 让browser=window.self; browser.onSuccess=函数res{ //做点什么 } 浏览器o

类似问题

我正在本地主机上创建两个react应用程序,一个在端口3000上,另一个在端口3001上。localhost:3000上的项目是一个SigninAPI,类似于GoogleOAuth。localhost:3001上的应用程序需要打开一个弹出窗口,以允许用户登录localhost:3000,并最终将用户帐户返回到localhost:3001

本地主机:3001相关代码:

让browser=window.self; browser.onSuccess=函数res{ //做点什么 } 浏览器openhttp://localhost:3000/singin,登录,选择; localhost:3000相关代码:

//将文档域设置为window.opener的同一域 document.domain=localhost:3001; //调用成功函数 window.opener.onSuccessuser; 该函数存在,但调用时抛出以下错误: SecurityError:拒绝访问跨源对象上的成功属性的权限

信不信由你,昨天在将document.domain设置为localhost:3001后,它工作正常

我尝试的是:

在localhost:3000的index.html上添加此标题: 将类似http://的协议添加到document.domain。 允许防火墙访问两个端口我很绝望,好吗? 编辑 localhost的代码:3001。src/localhost3000中的文件来自localhost:3001项目

请 我不想使用postMessage。

根据文档,我认为这是不可能的

如果开场白与当前页面不在同一原点, opener对象的功能受到限制。例如,变量 窗口对象上的和函数不可访问。然而 开启器窗口的导航是可能的,这意味着 打开的页面可以在原始选项卡或窗口中打开URL。在某些方面 在某些情况下,这使得网络钓鱼攻击成为可能,其中 在原始窗口中打开的被替换为网络钓鱼页面 新打开的页面


如果您同时拥有这两个域,那么使用postMessage连接这两个域非常简单。

您还有哪些脚本importing@Joe,我只是添加了一些代码的链接。通过阅读文档,我同意你的看法。但正如我所说,它昨天运行良好,根据添加document.domain应该可以运行,作者自己回答了这个问题。现在我很困惑,这似乎是一个不推荐使用的功能,这可能是它过去工作的原因。此外,autor提到了IE11,没有最新的浏览器。是的,我无法解释以前为什么要工作。但我知道只有在我设置document.domain之后,它才起作用。经过更多的研究,我决定使用postMessage。谢谢你@uke。你是最棒的。