0

我一直使用的解决方案如下:

$('form').submit(function(){
  $('input[type=submit]', this).attr('disabled', 'disabled');
});

但是,当我查看有关此人的其他问题时,他们提出了过于复杂的解决方案,这让我认为上述内容还不够。

如果您只想防止人们意外提交表单两次,这有什么缺点?

4

2 回答 2

0

防止重复提交的唯一真正方法是在服务器端检查它。

客户端代码非常不可靠,客户端可以很容易地更改。

于 2013-11-08T16:41:37.107 回答
0

这适用于意外重复提交,但大多数情况下,这种过于复杂的方法是针对试图绕过您的安全的黑客和其他用户实施的,例如那些试图通过刷新页面注册数百个用户来向网站发送垃圾邮件的人。

这就是为什么许多表单使用一个令牌,由服务器生成,它只对一次提交有效,例如一个 ip 只能得到一个令牌。

于 2013-11-08T16:47:27.743 回答