【问题标题】:Change src Iframe with cross-domain使用跨域更改 src iframe
【发布时间】:2012-08-09 07:21:41
【问题描述】:

我正在尝试使用 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.

非常感谢!

【问题讨论】:

    标签: java javascript gwt


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

    • 好的,非常感谢。是的,但如果我想在标头中注入一个 cookie 将不起作用,因为使用此指令我不会在标头中放入任何信息。感谢您的链接是非常有趣的信息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 2023-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多