gpt4 book ai didi

javascript - 使用相同的域阻止具有来源的框架访问跨域框架

转载 作者:数据小太阳 更新时间:2023-10-29 05:38:26 24 4
gpt4 key购买 nike

您好,我对这条消息有疑问。

我主页的 url 是:

page1.mydomain.com/page1.html

此页面有一个 iframe 用于:

frame.mydomain.com/iframe.html

然后从主页面我从另一个页面打开一个窗口,就像这样:

mywindow = window.open("http://page1.mydomain.com/page3.html", 'page3', 'status=1,height=768,width=1280,scrollbars=1');

所有3个页面都设置了javascript:

document.domain = "mydomain.com";

我可以毫无问题地从主页与 iframe 进行交互。我只有访问 window.open 属性时有问题。

喜欢:

mywindow.document.getElementById("something")

我收到了错误消息。

blocked a frame with origin from accessing a cross-origin frame

如果我从 page3 尝试:

window.opener.document.getElementById("somethingPage1")

同样的错误:

blocked a frame with origin from accessing a cross-origin frame

为什么我可以和 iframe 交互而不能和 window.open 和 window.opener 交互?

最佳答案

在我的例子中,域名不同,我通过用父域名替换客户的域名来解决这个问题。如果域名在子(弹出)窗口中无关紧要,您可以尝试这样做。您尝试访问 window.opener.document.getElementById() 的内容将不起作用。它会在您发布时引发安全错误。如果可能的话,最好的方法是将两个 URL 设置在同一个域名下。或者只是为了开发你可以安装扩展“Allow-Control-Allow-Origin:”在 Chrome 中它会起作用。

关于javascript - 使用相同的域阻止具有来源的框架访问跨域框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28348587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com