2012-06-07 76 views
1

當用戶提交一個html表單(method =「post」)後,它將它們帶回到它們所在的頁面(但其中一些數據已更改)。如果用戶刷新頁面,則再次提交表單。在我的應用程序中,這可能會創建一個非法狀態(因爲表單數據未經驗證就提交)。當用戶刷新頁面時,HTML表單被重新提交 - 我如何阻止這種情況發生?

如何防止在用戶刷新頁面時提交表單?

下面是一些示例代碼給大家是怎麼回事的一個基本思想:

<script type="javascript"> 
function verifyForm() { 
//do stuff 
} 
... 
<form onsubmit="return verifyForm();" method="post"> 
<input name="testing" type="text" size="8" /> 
<input name="save" type="submit value="Submit Form" /> 
</form> 

然後在JSP控制器:

public class myController implements Controller 
{ 
@Override 
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception 
{ 
// do stuff with the form data received in the request 
} 
} 

有幾個地方我也許能解決這個問題:在html頁面本身,或者在控制器(在jsp中使用MVC模式)。到目前爲止,我發現this question幾乎似乎適用於我的問題,但似乎並沒有問同樣的事情(也沒有使用PHP)。

+0

http://en.wikipedia.org/wiki/Post/Redirect/Get – PeeHaa

回答

0

的典型的解決方案是每一個成功的POST後重定向。瀏覽器將使用GET執行重定向,因此不會發布任何內容;如果重新加載,則只會重複GET請求,而不是初始POST。

相關問題