2011-07-05 50 views

回答

2

沒有與此相關的特定響應代碼。當最終用戶嘗試從瀏覽器歷史記錄請求非緩存的POST請求時,這只是瀏覽器默認的錯誤頁面。

因此,爲了得到這樣一個錯誤頁面,當用戶在歷史瀏覽回來,那麼下面的兩個條件必須滿足:

  1. 這是一個HTTP POST請求(因此,不GET!否則瀏覽器將重新發送到服務器)。

  2. 它有minimum necessary響應標頭,它已指示瀏覽器不緩存響應。

    Cache-Control: no-cache,no-store,must-revalidate 
    Pragma: no-cache 
    Expires: 0 
    
1

如果您收到此消息意味着你返回到您之前提交的信息達到了一個網頁,但網頁已經從緩存過期。

Internet Explorer不希望只是盲目地重新提交您的信息,以防萬一它帶來了後果(比如對信用卡收取雙倍費用)。所以它顯示這個警告。

或者您按下了刷新按鈕,或者由於服務器上的某種緩存控制指令(如「必須重新驗證」與「無緩存」結合或頁面緩存),頁面將從緩存過期「過期」日期已過期。

你應該尋找

  • Cache-control:含頭no-store

    • Cache-control:must-revalidate

      0頭
      • Cache-control:含有no-cache或類似

      • Expires:與已過期

      • 別的東西的日期頭頭這將使高速緩存不可滿足如過於嚴格的Vary:標題。

防止這種情況在服務器端的一個方法是使用Post/Redirect/Get strategy

相關問題