停止浏览器要求在刷新时重新发送表单数据?

我有一个通过POST提交表单。 我提交表单,一切正常,但是如果我尝试重新加载表单提交后的新页面,则会显示“您要重发数据”消息(FireFox)。 它也可能发生在其他浏览器,但我不知道。

有没有人知道一种方法来阻止这个消息popup,所以我可以继续刷新页面。 这对于生产环境并不好 – 用户可以提交两次相同的表单!

您需要使用POST-Redirect-GET模式。

使您的表单响应redirect到GET请求。
这样,当用户刷新页面时,只会重新发送GET。

response.sendRedirect之后的一个简单的方法是以这种方式重新加载页面:

 window.location.href = window.location.pathname; 

它适用于我。

如果浏览器这样做,这将是一个安全违规。 对于信用卡处理中的前者,网站可能会向用户收取两次费用。

唯一的办法就是去地址栏打回车。 这将引起新的要求。

如果url没有任何参数,使用这个 –

 window.location = window.location.href+"?rnd="+Math.random(); 

或者使用这个 –

 window.location = window.location.href+"&rnd="+Math.random(); 

它会工作。