1)我看到一個關於這個問題的面試問題,我認爲這與表單提交和避免雙重提交有關。有人能證實這一點嗎?這是「Reload safe」網頁的含義,可以通過Ajax實現嗎?
2)假設這個假設是正確的,這可以用Ajax來完成嗎?如果有,有人可以指向我的鏈接? (我假設你會生成某種隨機數並將其作爲隱藏字段包含在表單中,然後確保該數字在會話之前未提交)。
1)我看到一個關於這個問題的面試問題,我認爲這與表單提交和避免雙重提交有關。有人能證實這一點嗎?這是「Reload safe」網頁的含義,可以通過Ajax實現嗎?
2)假設這個假設是正確的,這可以用Ajax來完成嗎?如果有,有人可以指向我的鏈接? (我假設你會生成某種隨機數並將其作爲隱藏字段包含在表單中,然後確保該數字在會話之前未提交)。
Redirect-after-post是一種避免用戶刷新或使用後退按鈕返回發佈表單的問題的技術。簡而言之,不是爲HTTP帖子提供響應頁面,而是在其重新加載時觸發另一帖子,您發出303 redirect(或302,通過利用與網絡一樣古老的bug來支持古代瀏覽器) 。這會導致瀏覽器發出第二個HTTP請求 - 這次是獲取 - 如果重新加載的響應頁面不應該有任何問題。只要確保所有更改都是由帖子處理程序完成的,並且您重定向到的頁面沒有任何副作用。
如果您使用XMLHttpRequest
發佈,則會遵循重定向;除非你使用hash part of the location或新的HTML5 history methods特別支持它,那麼後退按鈕和重新加載不會再次觸發AJAX帖子。
您可以詳細說明1)'位置的哈希部分'還是2)新的HTML5歷史記錄方法? – JGFMK 2011-02-17 12:03:28
這是我正在考慮的J2EE Synchnronizer令牌設計模式。我在Erwin Vervaet的Spring Webflow書中讀到了它。請參閱:http://www.javaworld.com/javatips/jw-javatip136.html – JGFMK 2011-02-17 12:14:16