【问题标题】:PHP Redirect that force refresh (CTRL+F5)PHP 重定向强制刷新 (CTRL+F5)
【发布时间】:2012-01-24 13:16:34
【问题描述】:

我有一个带有可编辑表格的页面。我需要用户能够编辑它,然后提交他们的更改。一切正常,直到我将它们重定向到具有新内容的同一页面(与它们的更改相关)。但是,他们看到的是旧内容。

如果我在浏览器上按 ctrl+f5,它们的内容就会更新。我想知道是否有办法强制这样做。这是我的 php 代码,它无助于强制刷新:

header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Pragma: no-cache');
header( 'Location: http://www.bamozir.com/en/mtl-en/recent/general-info/cost#edit' );

Eugen Rieck 解决方案非常适合 firefox、chrome 和 safari。但不是在 IE 和 Opera 上。知道如何解决这个问题吗?

【问题讨论】:

    标签: php redirect refresh


    【解决方案1】:

    始终有效:假设您的 URL 是 http://my.server/my/page?a=b&c=d,您将重定向到 http://my.server/my/page?a=b&c=d&nocache=1234567890,其中 1234567890 是一个很大的随机数

    【讨论】:

    【解决方案2】:

    您必须在要强制刷新的页面上设置缓存控制和过期时间。通过在重定向之前设置它,您是在告诉浏览器不要缓存您要重定向的页面。

    【讨论】:

    • 我的所有页面都以相同的方式使用相同的标题进行控制。我无法更改这个特定的 php。有没有一种方法可以模拟 ctrl+f5 只有在用户对修改后的数据按下提交后?
    【解决方案3】:

    使用此标头使用刷新:

    Refresh: 0;url=http://www.bamozir.com/en/mtl-en/recent/general-info/cost#edit
    

    在此处查看有关该主题的更多信息:'Refresh' HTTP header

    【讨论】:

    • 不过我想使用 php 重定向。
    • 您要求刷新页面的方法。我已经给了你一个方法。
    • @rzetterberg:很好的答案。 header("刷新:0;url=wherever.php"); link
    猜你喜欢
    • 2010-10-30
    • 1970-01-01
    • 2017-01-12
    • 2012-01-25
    • 1970-01-01
    • 2017-05-22
    • 2010-09-27
    • 2018-07-25
    • 2020-12-25
    相关资源
    最近更新 更多