日期:2014-05-17  浏览次数:20679 次

防止重复提交时,怎么使前面的请求能够返回?
用token方式防止重复提交,在表单页生成一个token放在隐藏域并记入session,提交时,判断该域与session中一致则继续执行,否则中止,重复提交经常是快速点多次提交按钮,这生成了多次请求,第一个请求能够正确保存,第二个中止,但第一个请求保存后的处理可能是返回json数据,或者重定向到另一个页面,但是有重复提交的情况下,第一个请求似乎被第二个覆盖了,由于第二个请求中止了,页面却报错,请问这怎么解决?

我希望第一个请求能够返回正确结果,重复提交的请求仅仅中止,不要影响页面输出。
重复提交

------解决方案--------------------
我觉得如果是会重新定向就没必要加载token,如果是ajax返回的,就在后台保存成功后清空token,或者是保存失败,则需要重新生成一个token令牌返回到页面,重新赋值到页面,大概如此流程才够严谨
------解决方案--------------------
前端解决。按钮点击后变成不可用的。
------解决方案--------------------
  提交后设置按钮不可用 
或者
  提交后设置input框为空 前提是提交前有判空不提交的逻辑
------解决方案--------------------
引用:
Quote: 引用:

我觉得如果是会重新定向就没必要加载token,如果是ajax返回的,就在后台保存成功后清空token,或者是保存失败,则需要重新生成一个token令牌返回到页面,重新赋值到页面,大概如此流程才够严谨


如果采用js变灰或显示处理中...等方式,token这种后台机制就没有必要了吧?因为这种机制反而会造成数据无法返回而报错,或者ajax返回不了新token造成无法再次提交


你可以说没必要,也可以做有必要咯,必要时,双重保险才是王道,如果数据的比较严格的话