我有一个页面,其中用户执行http'get'来填写表单的数据,然后用户http'发布'表单,并且当成功时,用户被http'重定向'到收据页面。
现在这一切都很好,但是用户可以在浏览器中点击“返回”并重新发送表单。 我想使表单过期,但尝试过多种过期策略。他们都没有一贯地工作。
这种模式是否存在阻止表单过期的内容?
如何使表格到期?
答案 0 :(得分:2)
您不能使表格过期。
PRG用于防止多个表单提交,因此如果用户在POST(也就是表单提交)后在其浏览器上按“刷新”,则表单将不会重新提交 - 因为“刷新”按钮只执行历史记录中的上一个请求(由于您的重定向,这是一个GET)。
你可以做的是在你第一次渲染表单时创建一个cookie,并设置一个到期时你希望表单到期的时间。
然后,该cookie将随每个后续HTTP请求一起发送。您应该检查HTTP POST操作中的cookie,如果cookie已过期则返回错误。