reCaptcha google chrome Spring MVC双提交问题

时间:2013-07-30 05:45:19

标签: spring google-chrome spring-mvc recaptcha validationerror

我正在使用Spring MVC 3和JSP / JSTL作为视图。我已经在我的表格中加入了reCaptcha。当我提交表单时,我注意到一些不一致的非常奇怪的行为(即它不会一直发生,它是随机的)。这仅适用于谷歌浏览器。

我在网上搜索过但无法找到有关此问题的任何信息。

基本上,当我提交包含有效验证码的表单时,我会退回到表单页面,验证码是有效的。我很幸运,能够调试一次并看到验证码是有效的,但控制流以某种方式被截获DESPITE它执行返回ModelAndView逻辑。

所以换句话说,它应该返回一个带有新视图的ModelAndView控制器,而是控制流回到函数顶部!并且它会在重新捕获代码无效的情况下点击重新捕获代码,但是它表示为FALSE。然后它回到原始表单页面。令人沮丧的是,我的生产数据库有一个提交,因为验证码最初是有效的,而其他有效的逻辑是按照正常情况执行的。

reCaptcha框是唯一标有错误的框,表示您必须重新输入代码。唯一的主要问题是,即使我的reCaptcha是坏的,它应该立即返回并再次尝试,它确实如此,但它不应该显示为有效,高举控制流,然后重定向回到表单页。

最终结果是我在数据库中获得了2条确切记录,因为用户再次提交。它只会以这种方式发生。也就是说,当你必须提交3次或更多时,我没有遇到过这种情况。

这只发生在Google Chrome中。我在firefox和IE上尝试了这个,但我从未见过这个问题。另一个国家的某个人刚刚通过此表单提交了信息,我问他们使用了什么浏览器,他们确认这是Chrome!我也经常遇到这个问题,知道这实际上是一个问题。

有谁知道为什么控制流程会回到函数顶部?我注意到的另一件事是控制流并不总是到底,这就像它有自己的想法。还有一次我走过去,它只是跳到了顶端。

任何帮助都会受到赞赏,因为我想在生产系统中解决这个问题! 谢谢!

0 个答案:

没有答案