问题标签 [double-submit-problem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
5814 浏览

jakarta-ee - 如何防止用户在网站上多次发布数据

我正在开发一个 Web 应用程序 (J2EE),我想知道可用于处理来自浏览器的双重发布的选项。

我过去看到和使用的解决方案都是客户端的:

  • 用户单击后立即禁用提交按钮。
  • 遵循 POST-Redirect-GET 模式以防止用户单击后退按钮时出现 POST。
  • 处理表单的 onSubmit 事件并使用 JavaScript 跟踪提交状态。

如果可能,我更愿意实施服务器端解决方案。有没有比我上面提到的更好的方法,或者客户端解决方案是最好的?

0 投票
8 回答
12674 浏览

javascript - 在 Rails 控制器中,如何防止双重提交(当用户双击提交按钮或按两次回车时)?

好吧,一切都在标题中,但我会解释更多:-)

我的 rails 应用程序包含许多表单(Ajaxified 与否)。

为了防止用户提交两次或更多的某些表单,我使用了 Javascript。

我有一个 Ajaxified 表单的场景:

  • 用户提交表单(单击或输入)
  • javascript禁用提交按钮
  • rails 控制器做一些事情(比如一个肥皂请求或一个数据库中的插入)
  • rails 控制器更新页面并在必要时启用提交按钮(以防出错)

现在我想添加服务器端代码,以在用户绕过 javascript 时保持干净。

有什么建议么?

0 投票
4 回答
8511 浏览

jquery - 在 Chrome/Safari 中提交了两次表单

我正在寻求执行基本表单发布,但以下内容在 Chrome 和 Safari 中两次提交到服务器(但在 Firefox 中的行为与预期相同):

我想onsubmit在提交之前使用该属性对字段进行验证,但是无论返回值为true,表单都会提交两次。

我试图将 jQuery 处理程序绑定到表单,但在这里,默认行为不会被阻止,表单被提交两次,例如:

虽然我认为对于一双新的眼睛来说这里有一些明显的错误,但我很困惑为什么提交,无论是否经过验证,都会在 Chrome 和 Safari 中向服务器发送重复的帖子。我会很感激任何见解。

0 投票
2 回答
2666 浏览

javascript - 为什么我要提交两次表格?带有单选按钮的 jQuery submit()

我正在使用 jQuery 在 MVC 应用程序中提交表单。我在控制器中有一个断点,我看到它被击中了两次。我究竟做错了什么?

这是我的 jQuery

这是html表格

我猜我不应该使用 change 事件。如果有人知道如何解决这个问题,我很想听听任何想法。非常感谢任何提示。

干杯,
~ck 在圣地亚哥

0 投票
2 回答
1748 浏览

ajax - Ajax 表单提交。表单提交两次

我正在使用 cakePHP,在我看来,我有一个带有 ajax 提交按钮的表单。我使用蛋糕助手渲染它。

当我单击提交时,控制器操作被调用两次。如果存在此问题,我搜索了 stackOverlow 但找不到有效的解决方案。没有语法错误。

帮助将不胜感激。谢谢。

0 投票
2 回答
1548 浏览

ajax - 如何防止ajax驱动的表单被提交两次?

在开发 Grails 应用程序时,我正在使用 Ajax 迈出第一步。我在用

以最简单的方式,开箱即用(感谢 grails!)。问题是,Ajax 调用需要大约 2 秒来返回和更新 html(至少在测试系统上),在此期间,用户可以(实际上经常这样做)再次点击提交按钮。目前这导致第二次调用最终破坏了输出(错误消息说,一个人不能两次提交相同的数据)。

防止这种情况的最佳方法是什么?

提前感谢您的意见!

0 投票
2 回答
2615 浏览

php - 在一页提交数据两次

我问了这个问题,但是有这么多废话,我这次把它分解成最少的代码量。表单页面发送数据到确认页面。

确认页面将数据回显给用户,以便他们可以仔细检查。然后,如果他们单击“提交”,它会重新加载同一页面,然后向我发送一封电子邮件,然后它会更新表单操作的 url,并且由于 $url 不为空,因此在用户不知道的情况下,一点 javascript 会再次提交表单。一切正常,但javascript 没有发挥作用。页面就在那里,我可以在页面源代码中看到 javascript,所以它就在那里。

表格页面:

确认页面:

0 投票
2 回答
10054 浏览

javascript - jQuery 提交事件发生两次

我的 jQuerysubmit()事件触发了两次,我不知道为什么。

我正在使用模板引擎动态构建我的 HTML,所以我最终调用$(document).ready()了多次,如下所示......

...之后...

表单 HTML:

仅供参考:当我在 Safari 控制台中运行它时,$('form.search').get()我得到了这个[ <form class=​"search" method=​"get" action=​"/​search/​">​…​&lt;/form>​ ]

问题:

当我点击Enter或单击提交按钮或以其他方式触发submit事件时,该事件被触发两次。我知道这一点是因为 an<li>被添加到 domalert中两次,并且 也出现了两次。

罪魁祸首:

当我在第一次调用中注释掉click事件绑定时$(document).ready,事件只发生一次,正如预期的那样。第一个代码如何导致双重事件触发?

0 投票
4 回答
3373 浏览

jquery - Jquery - Internet Explorer 提交表单两次

我有以下代码用于提交带有链接(而不是按钮)的表单。这样我们就可以用它们做一些 CSS 悬停的东西。

问题是 Internet Explorer 偶尔会提交两次表单。我自己无法复制问题,但我可以在我的生产服务器日志中验证它。此问题在 IE6 - IE9 中仍然存在。所有其他浏览器都可以正常工作。我看过一些帖子说从链接返回 false,但我正在这样做。

任何帮助表示赞赏。

0 投票
7 回答
26043 浏览

javascript - IE9 双表单提交问题

我只是想知道是否有人对我所处的情况有一些信息或反馈。目前我面临一个“双重提交”问题,我点击一次“提交”按钮,然后提交了两次表格。这仅在 IE9 中发生,但我仅针对 Safari、Chrome(最新)、FF(版本 5/6)、IE8 和 IE9 进行了测试。

这是代码:

有问题的部分是:

代码已经在我的网站上很久了,这是我今年IE9才发布以来第一次遇到双重提交问题,可能这几天使用IE9的人越来越多,因此我收到了用户关于这个问题的投诉.

最困难的部分是双重提交问题并不总是可重现的。有时会重复提交,有时会提交一次。

我目前的工作是改变:

并更改为:

这会强制 IE9 使用 IE8 兼容性,并且它将正确执行 Javascript 以进行提交。

我打电话给微软支持,他们声称这是一个“Javascript 兼容性问题”,所以我们需要微调我们的 Javascript 以使我们的网站在 IE9 下正常工作..(呃!)

无论如何,是我的代码:

一开始就错了吗?因为即使其他浏览器没有抱怨,但这可能是不正确的开始?

我希望如果有人也面临类似的问题有更多的信息或反馈。目前,如果我不将 X-UA-Compatible 更改为 IE=8,我可以将我的代码更改为:

这也将解决双重提交问题,但是否还有我们应该注意的 IE9 兼容性问题列表?

谢谢!