为了账号安全,请及时绑定邮箱和手机立即绑定

如何组织form重复提交

如何组织form重复提交

蛊毒传说 2019-03-22 10:15:45
背景:今天被测试提了一个bug,很纳闷,因为这个bug是:没有禁止表单重复提交。顿时感觉form表单真是无处不在。一般我们不做重复提交的处理,有些地方会使用js禁止提交按钮的方式,但也仅限于通过js提交的表单。于是各种百度,有说使用session做标记的,根据标记来判断是否第一次提交,但想想这种方式对后端来说比较复杂,而且session也比较贵。今天测试提的bug顿时让我毫无头绪了,因为这个表单是同步提交的,根本没有js参与。更不可能为所有的同步表单都写一套js。那么,面对同步提交表单的这种情况,大家是如何解决重复提交问题的呢?提出你的锦囊妙计吧!
查看完整描述

4 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

我支持禁用提交。其实并不复杂,提取出一个公共逻辑即可,并不需要对每个表单独写一套。

防止重复提交,说到底就是防止一个逻辑执行多次。然而要求后端完全幂等是不可能的,create操作就是个反例。因此更好的实践便是从前端入手。


查看完整回答
反对 回复 2019-04-17
?
互换的青春

TA贡献1797条经验 获得超6个赞

onclick="this.disabled=true" 这么简单的一句代码用的着写一套???

对于前端来说, 防止重复提交是必须做的...
当然后端视情况要不要加, 因为前端只能防止用户手动多次点击, 但是没有办法阻止模拟请求


查看完整回答
反对 回复 2019-04-17
?
繁花如伊

TA贡献2012条经验 获得超12个赞

一个结果,n种方法。
session(或者cookie)虽然比较贵但也可以说是比较节省的,毕竟其他方法还要进行新的模块调用(cache,db)
session_id就可以判断啊。

查看完整回答
反对 回复 2019-04-17
  • 4 回答
  • 0 关注
  • 442 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号