当显示来自数据库的数据时,通常我处于这种情况
为了使页面B重定向到页面A我使用简单的PHP
header("Location: " . "A.php", TRUE, 302);
这适用于所有情况,,除非将页面A.php移位到<iframe>
:在这种情况下它不会重新加载(步骤4没有完成)。
这似乎只发生在IE7(不知道IE8),它在FF / Safari上完美运行。
并且只有在使用<iframe>
时,如果页面A.php不在<iframe>
中,它也会在IE7中刷新。
为了解决这个问题,我在页面A.php中添加了几个标题,将其设置为不缓存:
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
但我很好奇你过去是否也遇到过同样的问题,如果你想给我一些建议呢?
答案 0 :(得分:0)
你在使用会话吗?如果是这样,您是否可以在没有会话且没有修复的情况下再次测试您的方案?
您所做的修复处理缓存控制和到期,由session_start()
和/或session_cache_limiter()
更改。不过,这种行为很奇怪,可能是IE-7特有的错误。
答案 1 :(得分:0)
内容与“外部”框架在同一个域中吗?
如果没有,您可能需要提供完整路径“http://...etc”。在header()中调用。
答案 2 :(得分:0)
我已经看到这发生在IE11上。首先,在某些情况下,当您的重定向网址与原始iframe网址具有相同的协议时,IE会发挥更好的效果。
此外,许多人能够通过添加P3P标头来解决类似问题。尝试在发送重定向标头之前添加:header('P3P: CP="CAO PSA OUR"')
。