form表单提交controller运行两次如何解决? 10C

form表单提交数据,由于有附件enctype ="multipart/form-data",controller运行两次,去掉附件则正常运行
请问如何解决?

42个回答

这个问题,我之前也遇到过,看有没有用的表单validator框架,如果有验证框架,把提交按钮改成button,在表单验证函数那进行表单验证后提交,
如果没有理论上是不会重复提交的,可能是有脚本控制提交,form本身又提交了,这个先排查一下脚本、引用的脚本,如果还没找到可以用浏览器调试一下,打个debugger看看,最后看看network,请求次数。等等。。。

之前我遇到过类似的问题,但是不是在提交附件的时候,是普通ajax提交请求的时候,是因为母版页和自视图中引用了两次ajax的js文件,删除一个就好了。

有脚本控制提交,form本身又提交了,这个先排查一下脚本、引用的脚本,如果还没找到可以用浏览器调试一下,打个debugger看看,最后看看network

验证下页面加载会不会提交

因为附件会走一边 ,表单走一边 所以 controller 断点运行两边

先看看network 有脚本控制提交,form本身又提交了,这个先排查一下脚本、引用的脚本,如果还没找到可以用浏览器调试一下,打个debugger看看,

有脚本控制提交,form本身又提交了,这个先排查一下脚本、引用的脚本,如果还没找到可以用浏览器调试一下,打个debugger看看,最后看看network

有脚本控制提交,form本身又提交了,这个先排查一下脚本、引用的脚本,如果还没找到可以用浏览器调试一下,打个debugger看看,最后看看network

1、js中有路径重复,并在返回页面时执行了请求方法。

2、提交的事件编码绑定的input的type是submit;

3、使用nginx作为反向代理服务器(或者负载均衡)时,后端的Tomcat或者JBoss执行逻辑时间过长,导致nginx重发请求;

4、前端绑定的元素是a或者img这两个html标签时src="";

5、使用了struts2的form标签,而且其action="",而form试用了javascript提交,如:

  document.getElementByIdx_x_x("formId").action="XXXX";

  document.getElementByIdx_x_x("formId").sumit();

   参考文章:http://blog.csdn.net/phoenix2121/article/details/5683098

6、执行访问后台请求的javascript代码放在js文件中,并且也页头和页尾可能被引入了多次;

7、请求struts2的action方法是以get开头的,比如xxx!getXxx.do,参考文章:http://blog.csdn.net/gl74gs48/article/details/7838371

8、一个button可能被动态绑定了多个请求的javascript;

9、浏览器是firefox,而且被安装了一些插件,如:yslow;

q446002320
BMKB controller的返回值已json格式返回
4 个月之前 回复
qq_39651409
qq_39651409 后台只要涉及到request就会导致运行两遍
接近 2 年之前 回复

有脚本控制提交,form本身又提交了,这个先排查一下脚本、引用的脚本,如果还没找到可以用浏览器调试一下,打个debugger看看,最后看看network

共42条数据 1 3 4 ... 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!