在經常使用POST
請求的商業Web應用程序中,需要執行history.go(-1)
以觸發回導航。正如其他人已經經歷,我越來越 -Chrome - 確認表單重新提交 - 不同行爲
確認重新提交表單ERR_CACHE_MISS
錯誤的Chrome。但是,在Firefox中也是如此(這不是重複的,請繼續閱讀)。
確實,使用POST
請求渲染內容是導致上述問題的原因(不使用Post/Redirect/Get設計模式)。
但是,在尋找替代解決方案時,觀察到在某些網站/應用程序中,可能導航回Chrome(緩存命中),因爲在某些站點失敗。我檢查了成功網站的所有HTTP headers
,看起來HTTP headers
沒有任何區別。
它可能是瀏覽器根據Web應用程序使用的SSL證書採取不同的行爲,或者可能是某些網站中的後退導航工作原因?
實例工作Web應用程序:
http://gmail.com/ - 隨便輸入一些電子郵件。點擊下一步。多次輸入不正確的密碼並使用瀏覽器後退按鈕導航回。
https://support.hostgator.com/ - 在搜索框中輸入一些隨機文本(多次執行此操作)。使用瀏覽器後退按鈕導航回。在失敗的web應用所使用
POST請求:
POST /post3.jsp HTTP/1.1
Host: 192.168.1.111
Connection: keep-alive
Content-Length: 18
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: https://192.168.1.111
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: https://192.168.1.111/post2.jsp
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
我對這個問題和答案表示衷心的感謝! –