iframe中的HTTP重定向,而不是父窗口中的重定向

时间:2014-01-25 12:13:10

标签: javascript html redirect iframe web-applications

我正在开发一个Web应用程序。 在这个Web应用程序中,我必须从iframe中的不同服务器(例如:www.xyz.com)加载网页。但有时当我尝试从iframe中的某个不同服务器加载网页时,服务器会使用位置标头字段中的重定向链接以HTTP状态代码302(代表重定向)进行响应。发生这种情况时,主窗口(我的Web应用程序)被重定向,而不是仅在iframe中发生重定向。如何确保重定向仅在iframe而不是主窗口中发生?

3 个答案:

答案 0 :(得分:6)

使用sandbox =“...”

  • 允许表单允许表单提交
  • allow-popups允许弹出窗口
  • allow-pointer-lock允许指针锁定
  • allow-same-origin允许文档保持其原点
  • allow-scripts允许JavaScript执行,并允许功能自动触发
  • allow-top-navigation允许文档通过导航顶级窗口突破框架

热门导航是您要阻止的内容,因此请将其保留,不允许使用。遗漏的任何内容都将被阻止

离。

        <iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms" src="http://www.example.com"</iframe>

答案 1 :(得分:1)

问题不在于您的重定向,而在于之前发生的事情:我认为用户通过POST提交表单,并且网络服务器根据最佳做法回复302重定向。

如果<form>的{​​{1}}属性指向另一个网页,则其答案将重定向顶部 iframe。我找不到任何引用该行为的参考文档,但它是如何在当前浏览器中运行的。

解决方案是将action属性设置为target

_self

<iframe> ... <form action="http..." target="_self" > ... </iframe> 属性在这里没有帮助,您可能想要省略该属性或至少设置sandbox

答案 2 :(得分:1)

当我设置target =&#34; iframe_name&#34;。

时,它适用于我