本文主要介绍了平时项目中常用的4种防止表单复制的方法。伙伴根据自己的需要自由选择。





重复提交表单是多用户Web应用程序中最常见和最麻烦的问题之一,有许多应用程序场景会遇到重复提交问题,例如:

单击提交按钮两次。单击刷新按钮。使用浏览器返回按钮重复以前的操作,导致重复提交表单。使用浏览器历史记录重复提交。浏览器重复HTTP请求。

防止重复提交表单的几种方法

1。没有提交按钮。在提交表单后,使用Javascript使提交按钮失效。这种方法防止紧急用户多次点击按钮。但是,如果客户端禁用Javascript,则该方法无效。

我之前的文章已经说过一些jQuery插件很好。

2。邮政/重定向/获取模式。提交后,进行页面重定向,这是所谓的后重定向到(PRG)模式。总之,当用户提交表单时,您执行重定向客户端向成功提交信息页面。

这样就避免了由于F5而造成的用户重复提交,并且不出现浏览器表单重复提交的警告,也消除了浏览器前进和后退所带来的问题。

三.一个特殊的符号存储在会话形式。当页面被请求时,生成一个特殊的字符串,在会话中放在形式的隐藏域。在接受表单数据的处理,检查是否存在身份字符串并立即删除它从会话,然后处理数据正常。

如果表单提交中没有有效字符串,则表示表单已提交并忽略提交。

这使您的Web应用程序有一个更先进的XSRF保护。

4。向数据库添加约束。在数据库中添加唯一的约束或创建唯一的索引以防止数据重复。这是防止重复提交数据的最有效的方法。

以上是这4种方法的介绍,如果合作伙伴有更好的解决方案,请告诉他们,本文将继续更新。