代码之家  ›  专栏  ›  技术社区  ›  Marco Demaio

PHP头重定向不会在IE中重新加载<iframe>

  •  3
  • Marco Demaio  · 技术社区  · 16 年前

    什么时候? 显示数据库中的数据 通常我都是这种情况

    1. 用户执行一些操作(如编辑/删除等),并加载页面B.php来执行该操作,
    2. 它将浏览器重定向到A页,
    3. 因此,它显示了数据的更新情况

    为了使页面B重定向到页面A,我使用了一个简单的PHP

    header("Location: " . "A.php", TRUE, 302);

    这在任何情况下都有效, 除非页面A.php被显示为 <iframe> :在这种情况下,它不会重新加载(步骤4无法完成)。 <iframe> ,如果page A.php不在 < 它在IE7中也刷新了。

    为了解决这个问题,我只需在page 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
    

    3 回复  |  直到 16 年前
        1
  •  0
  •   Savageman    16 年前

    你在使用会话吗?如果是这样的话,您可以在没有会话和修复的情况下再次测试您的场景吗?

    您所做的修复处理了缓存控制和过期,它由 session_start() session_cache_limiter() . 不过,这种行为很奇怪,可能是IE-7特有的错误。

        2
  •  0
  •   Milan BabuÅ¡kov    16 年前

    如果没有,您可能需要提供完整路径“ http://...etc “.”in header()调用。

        3
  •  0
  •   Stephen M. Harris    12 年前

    而且,许多人都可以通过添加P3P头来解决类似的问题。尝试添加以下内容: header('P3P: CP="CAO PSA OUR"')