1

我有一个处理付款的表格,但是每 300 笔付款中大约有一次付款两次,我的日志显示所有这些事件都有两个请求。

我实现了一些 JavaScript,它在单击提交按钮后禁用它,它似乎对我来说工作得很好,但我仍然时不时地收到双重提交。

有谁知道可能导致表单提交两次的其他任何事情?

4

2 回答 2

5

正如 Dagon 所说,服务器端检查是您的朋友。给表单的每个实例一个随机生成的密钥(guid 会很好),并将其存储在数据库中。不要接受包含数据库中已存在的键的表单。

此外,您是否只是在表单处理逻辑执行后显示 HTML?如果是这样,请在处理完表单后尝试重定向。

于 2012-08-03T03:23:38.363 回答
1

这是一种方式:在用户按下表单提交按钮后,使用 javascript 将其禁用。这应该可以防止用户意外地重复提交表单。它适用于我们实施它的所有网站,因为。因为有时用户不耐烦并多次单击表单提交按钮,这就是您收到双重请求的原因。您需要确保它适用于所有浏览器(我的意思是禁用按钮)。

你也可以在服务器端做,只是更难。

我们使用类似于使用 jQuery 和 Coldfusion 服务器代码启用/禁用提交按钮中的赞成答案

于 2012-08-03T04:24:06.567 回答