我每次導航回到我提交了(後)的形式在Chrome中,我得到顯示以下錯誤白色一頁一頁:ERR_CACHE_MISS
谷歌瀏覽器ERR_CACHE_MISS解決方法
我做了一些搜索,但找不到任何真正的解決這個問題。
如何防止此錯誤?
我每次導航回到我提交了(後)的形式在Chrome中,我得到顯示以下錯誤白色一頁一頁:ERR_CACHE_MISS
谷歌瀏覽器ERR_CACHE_MISS解決方法
我做了一些搜索,但找不到任何真正的解決這個問題。
如何防止此錯誤?
我使用的伎倆來解決這個問題。檢測到POST數據時,使用標頭位置(GET方法)進行另一次重新加載。後退按鈕現在重定向到GET而不是POST並且問題不會發生。
當U需要使用發佈的數據時,簡單地將它存儲到下一個應用程序的會話中,當再次加載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在PROGRAMM的開頭解析,它不能被察覺。您只需組織數據進行雙重組裝。首先 - 解析傳入並準備在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
錯誤不再出現。
如果當前頁面可能包含獲取變量,則可以使用history.replaceState({}, '', document.referrer);
代替。
任何建議/更好的解決方案,歡迎...
http://stackoverflow.com/questions/19215637/navigate-back-with-php-form-submission –