-
HUH函数
我觉得靠谱的就是验证码一类,或者提交之后重定向,你只在按钮上下功夫,我如果直接从浏览器发起请求不走按钮就没用了。
-
桃花长相依
1:点击按钮后使按钮不可用借助 js 之力,在提交按钮点击后,即取消按钮的可用性。可以阻挡网络延迟的时候用户反复点击提交按钮,导致多次提交。尤其对 ajax提交的站点有效;甚至在 disable 按钮后,可以稍微人性化地给出提示,比如使用 jQuery 代码在提交时可以这样:$(".hisu").attr("disabled","disabled"); $(".hisu").attr("value","正在发布评论..."); 2:使用session做标记session 支持用户整个会话的信息存储,在用户提交表单的同时使用 session 存储用户的提交信息,这种解决方法在业内被称作为令牌法,即token。基本的步骤是:1.用户提交数据的时候,创建session,例如创建一个名为 token 值为当前时间戳的 session;2.存入数据库的逻辑要在存入之前检查是否有名为 token 的 session ,如果有,则返回错误,禁止提交;
这种方法应该算是在根源上杜绝了表单的重复提交。但是最好是能两者结合起来,确保数据安全的前提下还可以保证用户体验。
-
至尊宝的传说
利用数据库唯一约束
保证提交操作的幂等性,这样多次提交也不怕
-
梵蒂冈之花
一般的重复提交都是前端控制点击事件,后端通过token+session(或者缓存)保证唯一提交;之前做过一个防ajax重复点击的功能是把URI和用户唯一标识和一个次数标志放在缓存中,使用拦截器每次校验此次请求的合法性,主要是由于我们此次ajax请求业务比较复杂耗时较长,不知道能不能适用你的需求
-
呼如林
前端方案 上一个请求锁 false 请求后变为true 请求没有回来之前retrun掉 回来后再置为false
-
天涯尽头无女友
前端处理,点击提交不能再次点击就可以实现后端处理,判断用户提交频率和表单标示位进行处理
-
饮歌长啸
登录太频繁, 后端可以检测到, 返回一个错误码, 前端就可以提示了, 让他输入验证码后再提交。
-
慕婉清6462132
重复提交也就是在前端限制一下就可以,你总不能限制后台接口不允许重复请求吧?换句话说,如果你的接口复合restful规范,重复请求的结果也是一样的。
-
慕田峪4524236
点击查看:四种防止表单重复提交的方法