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

时间:2010-12-01 17:40:14

标签: html firefox post

我通过POST提交表单。我提交表单,一切都很好,但是如果我尝试重新加载表单在提交后转到的新页面,我会收到“你想重新发送数据”消息(FireFox)。它也可能在其他浏览器中发生,但我不确定。

有没有人知道如何阻止此消息弹出,以便我可以继续刷新页面。这对生产环境不利 - 用户可以两次提交相同的表单!

4 个答案:

答案 0 :(得分:48)

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

让您的表单回复,并重定向到GET请求 这样,当用户刷新页面时,它只会重新发送GET。

答案 1 :(得分:9)

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

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

它对我有用。

答案 2 :(得分:1)

如果url没有任何参数,请使用此 -

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

或者使用它 -

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

它会起作用。

答案 3 :(得分:0)

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

唯一的方法是去地址栏然后点击回车。它会引发新的请求。