谷歌Chrome ERR_CACHE_MISS解决方法



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

我做了一些搜索,但找不到这个问题的真正解决方案。

如何防止此错误?

我用这个技巧解决了这个问题。当检测到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方法之后,页面被加载了两次,但当u在程序开始时解析时,它就不会被注意到。您只需要组织数据进行双重组装。首先解析传入并准备在GET重新加载后进行传输。(即使用SESSION)。

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

我将history.replaceState({}, '', 'yourPage.php');添加到提交按钮的onclick=""属性中,请参见以下示例:

<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错误。

如果当前页面可能包含get变量,则可以使用history.replaceState({}, '', document.referrer);

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

最新更新