2016-01-08 356 views
1

我每次導航回到我提交了(後)的形式在Chrome中,我得到顯示以下錯誤白色一頁一頁:ERR_CACHE_MISS谷歌瀏覽器ERR_CACHE_MISS解決方法

我做了一些搜索,但找不到任何真正的解決這個問題。

如何防止此錯誤?

+0

http://stackoverflow.com/questions/19215637/navigate-back-with-php-form-submission –

回答

1

我使用的伎倆來解決這個問題。檢測到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)。

0

它可能不是最好的解決辦法,但我使用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);代替。

任何建議/更好的解決方案,歡迎...