2

我正在尝试使用 GWT 制作一个将在一个 iframe 中运行的应用程序。直到这里一切正常,问题是我在我的实际网络中有一个表单,它将请求发送到 iframe。当我按下“发送表单”按钮时,使用 java 脚本更改 iframe 的 src 并稍后刷新它:

document.getElementById('iframeSpecialOffers').src = container.url;

document.getElementById('iframeSpecialOffers').contentWindow.location.reload();

网络在 www.example.com:81 中运行,我的 iframe 的新 src 在 www.example.com:8082 中运行,我收到此错误

      Unsafe JavaScript attempt to access frame with URL http://example:8082/Home.html#!TilePage;searchQuery=*;searchMode=1;amount=1;
position='47.3686498,8.539182500000038';leftBottomPosition='47.32023,8.448059899999976';
    rightTopPosition='47.43468,8.625370100000055';availabilityEndDate=datetime'2012-08-012T18:00:00';$culture=en
     from frame with URL http://example:81/. Domains, protocols and ports must match.

非常感谢 !

4

1 回答 1

2

为了保护人们免受 XSS 攻击(跨站点脚本),浏览器不允许您访问 iFrame 或窗口中不来自同一域的任何内容。

但是,您可以设置某种标题,告诉浏览器允许跨域内容。

http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

我不确定那是你应该走的路线,但最好避免这种事情。

如果您的目标是严格刷新页面,您可以通过再次设置 src 来做到这一点,我相信只需执行以下操作即可刷新:

document.getElementById('iframeSpecialOffers').src = document.getElementById('iframeSpecialOffers').src;

但如果这不起作用,您可以附加一个无用的 queryString 参数以使其不同。

于 2012-08-09T07:41:24.143 回答