当前位置: 首页 > 知识库问答 >
问题:

GWT用“原点”阻止了一个帧http://localhost“从访问交叉原点帧

仉洲
2023-03-14

我想允许用户输入他们的网址并在iframe中浏览。在他们点击确认按钮后,我将从iframe中获得网址浏览。

IFrameElement frame = IFrameElement.as(DOM.createIFrame());
frame.setSrc("http://www.example.com"); //set the url of user enter
VerticalPanel ver = new VerticalPanel();
ver.getElement().appendChild(frame);

// After they click the confirm button, get the url from iframe
Window.alert(frame.getContentDocument().getURL());

但我从iframe获取url后出错了

例外:com.google.gwt。事件共享。雨伞异常:捕获异常:(SecurityError):阻止了具有原点的帧”http://localhost“从访问交叉原点帧。

共有1个答案

房冥夜
2023-03-14

简而言之:你不应该这样做,你也不能这样做。

第一:

有些页面的作者只是不想让他们的页面在框架中显示。例如,试试脸书,你会得到:

拒绝在帧中显示https://www.facebook.com/,因为它将X-Frame-Options设置为拒绝。

你也可以(用脚本)检查页面是否在一个框架中,然后“突破”并进入主窗口,http://www.interia.pl/这就是一个例子。

所以,有些页面不能在帧中显示。

第二:

阅读同源政策(SOP):

简单地说,SOP声明运行在网页上的JavaScript代码不得与非来自同一网站的任何资源交互。这种安全策略存在的原因是为了防止恶意网络编码器创建窃取网络用户信息或损害他们隐私的页面。虽然非常必要,但这种策略也有让网络开发人员生活困难的副作用。

 类似资料: