我有一个struts2,Hibernate和Spring应用程序。它在我们的本地端正常工作。当我们在开发服务器上部署应用程序时,有时会在表单提交时提交两次表单。这导致在数据库中输入重复数据。
这只发生在服务器上。这在Firefox上很少发生,但在IE中很常见。而且这只发生在某些形式而不是其他形式。但是,没有什么可以区分这些形式。
我们有时会使用struts 2提交按钮来提交表单,有时会使用带有简单按钮的java脚本来提交表单。
作为最后一种方式,我们可以使用拦截器来防止双重表单提交(我们将不得不对很多表单进行更改)但重点是它根本不会发生在本地端。为什么它只在服务器上发生,在某些形式上发生,有时只发生。
我注意到的另一件事是,当我不使用网络代理时,即使在服务器表单上也没有提交两次,但是当使用网络代理时,表单会被提交两次。该应用程序正常工作没有任何代理。完全没有重复。
代理人与它有什么关系?有没有人遇到网络代理和双表格提交的任何问题?
刚才我发现在使用代理时,有时会拒绝访问,在这种情况下,浏览器会发送两次请求,导致双重表单提交。
如果我看到http标头,我可以看到两个帖子请求,其中一个在标题中有以下内容
需要HTTP / 1.1 407代理身份验证(ISA Server需要授权才能完成请求。拒绝访问Web代理服务。)
有关于此的任何想法? 请帮忙。
答案 0 :(得分:0)
如果您使用jsp并使用
<html:submit .... onClick="some javascript code">
您可以尝试使用
<html:button .... onClick=:some javascript code" >
发生在我身上的情况是
希望它会有所帮助。