我的應用程序通過響應標頭禁用瀏覽器上的緩存,然後使用Post-Redirect-Get模式啓用後退按鈕以「重新獲取」當前頁面。
但是,現在用Firefox 12和IE 8重新測試時,我並沒有看到我期待的結果(或者我之前見過的IE 6)。Post-Redirect之後的後退按鈕行爲 - 獲取
在選擇後退按鈕後,我可以看到瀏覽器正在嘗試執行原始請求(Post),而不是重定向請求(Get)。當我看着螢火蟲的網絡選項卡上的請求,我看到以下內容:
貌似瀏覽器處理POST和GET作爲相同的請求,因此選擇後退按鈕重新提交早報:
我使用JSF,但我認爲這是一個瀏覽器的問題。有誰知道爲什麼瀏覽器沒有執行重定向頁面的獲取?
謝謝BalusC,您說得對,「POST accountDetails.xhtml」之前的請求是「Get accountDetails.xhtml」。爲了澄清我的理解,您說後退按鈕將「POST accountDetails.xhtml - > GET reviewInfo.xhtml」視爲相同的請求(和當前請求),因此執行先前的請求「GET accountDetails.xhtml」由後退按鈕? – Paul
當您從'reviewInfo.xhtml'導航出來後,在下一頁*按下後退按鈕時,後退按鈕只會重新執行'GET reviewInfo.xhtml'而不是'POST accountDetails.xhtml'。後退按鈕確實不會重新執行當前請求。刷新按鈕即可。如果沒有PRG,刷新按鈕就會重新執行POST。 – BalusC
您的意思是「沒有PRG,** back **按鈕會重新執行POST。」? – Paul