javascript下阻止表单重复提交、防刷新、防后退

2019-12-26,,

1 服务器端的解决方法。这是我最为推荐的方法。优点是判断准确,兼容性最大。 

做法:a页面显示表单,然后提交b页面处理,处理完后重定向到c页面显示结果。 

1.0 在访问a页面时在session里生成一个标志ID,例如 

//伪代码 
session("submitID")=random() 
然后把这个值写到表单的一个hidden的input里 

//伪代码 
<%response.write("<input name=submitID2 type=hidden value=\""+session("submitID")+"\">")%> 
1.1 b页面处理时判断表单所提交的submitID2的值是否和session中的submitID一致,不一致的话重定向到报错页面,一致的话把session中的submitID清空然后进行表单处理 

//伪代码 
session("submitID")="" 
//然后处理提交...... 
处理完成后重定向到c页面 

1.2 c页面其实就没什么好说的了,就是一个显示处理结果的页面。 

2 客户端用js解决 
这种方法不好,因为必然会遇到不同浏览器的兼容性问题,而且是必然可以绕过的。唯一的优点就是简单,不需要太多的编码 

2.0防止后退 
在每个页面的最顶上加上这个代码 

<script>window.history.forward();</script> 
2.1防止刷新 
我很难想到什么好方法可以做到。因为要屏蔽的地方太多了。只好采用一种很烂的方法: 

<body onunload="location='about:blank'>" <!-- 这个方法只是个想法,没有经过调试 --> 

您可能感兴趣的文章:

  • js防止表单重复提交的两种方法
  • js防止表单重复提交实现代码
  • js控制再次点击按钮之间的间隔时间可防止重复提交
  • JSP防止网页刷新重复提交数据的几种方法
  • JavaScript实现点击按钮后变灰避免多次重复提交
  • JSP刷新页面表单重复提交问题解决办法分享
  • JS Ajax请求如何防止重复提交
  • jsp 重复提交问题
  • 一个JavaScript防止表单重复提交的实例
  • 前端防止用户重复提交js实现代码示例

《javascript下阻止表单重复提交、防刷新、防后退.doc》

下载本文的Word格式文档,以方便收藏与打印。