2015-10-05 570 views
3

在經常使用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 

回答

2

鑑定認爲在Chrome後退導航在上述工作流失敗,除非用於HTTPS通信SSL Certificate是一個有效的,受信任的證書。

如果您使用的是自簽名證書,請將CA證書添加爲Trusted Root Certification Authorities,並且所有內容均應按預期工作。

+0

我對這個問題和答案表示衷心的感謝! –