【问题标题】:Google Chrome ERR_CACHE_MISS workaround谷歌浏览器 ERR_CACHE_MISS 解决方法
【发布时间】:2016-04-13 12:30:20
【问题描述】:

每次我导航回到我在 Chrome 中提交(发布)表单的页面时,我都会看到一个显示以下错误的白页:ERR_CACHE_MISS

我进行了一些搜索,但找不到任何真正解决此问题的方法。

我怎样才能防止这个错误?

【问题讨论】:

标签: javascript php html forms google-chrome


【解决方案1】:

我用这个技巧解决了这个问题。当检测到 POST 数据时,使用标头位置(GET 方法)再次重新加载。后退按钮现在重定向到 GET 而不是 POST 并且不会出现问题。

当你需要使用已发布的数据时,只需将其存储到会话中以供下次应用,当 index.php 再次加载时。

index.php

if (isset($_POST[...
{  
   // - 1st load

   $_SESSION["posted-data"] = $_POST;
   header('Location:index.php?pass=...');
}

if (isset($_SESSION["posted-data"]))
{
   // - 2nd load

   ... code to process ...
   unset($_SESSION["posted-data"])
}

在POST方法之后页面被加载了两次,但是当你在程序开始时解析时,它不会被注意到。您只需要组织数据以进行双重组装。首先 - 解析传入并在 GET 重新加载后准备传输。 (即使用 SESSION)。

【讨论】:

    【解决方案2】:

    这可能不是最好的解决方案,但我使用 Javascript 来防止出现此错误。

    我在提交按钮的onclick=""属性中添加了history.replaceState({}, '', 'yourPage.php');,看这个例子:

    <form action="yourPage.php" method="post">
        <input type="hidden" name="value" value="someValue">
        <input type="submit" name="sumitForm" onclick="history.replaceState({}, '', 'yourPage.php');" value="Pas aan">
    </form>
    

    它的作用是用此页面替换浏览器历史记录中的最后一页,这样当您返回时会调用 yourPage.php 并且不会再出现 ERR_CACHE_MISS 错误。

    如果当前页面可能包含获取变量,您可以改用history.replaceState({}, '', document.referrer);

    欢迎任何建议/更好的解决方案...

    【讨论】:

    • 在 ERR_CACHE_MISS 期间,页面未加载,因此您将看不到任何内容,但会看到此消息。
    猜你喜欢
    • 2011-02-04
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    相关资源
    最近更新 更多