今天碰到一些关于防止页面后退的问题。记录一下。
防止表单重复提交:
a页面显示表单,然后提交b页面处理,处理完后重定向到c页面显示结果。
具体做法:
1、在访问a页面时在session里生成一个标志ID
session("submitID")=random()
2、然后把这个值写到表单的一个hidden的input里
<%response.write("<input name=submitID2 type=hidden value=\""+session("submitID")+"\">")%>
3、b页面处理时判断表单所提交的submitID2的值是否和session中的submitID一致,不一致的话重定向到报错页面,一致的话把session中的submitID清空然后进行表单处理
session("submitID")=""
防止后退
A页面到B页面 B页面防止后退
方法一:
A页面
var url="answer.aspx?award="+award;
window.location.replace(url);
方法二:(推荐)
function InitPage()
{
window.history.forward();
}
在B页面<body onload="InitPage()" >
分享到:
相关推荐
页面提交后,后退,刷新会重复提交,导致很多麻烦,.net里可以这样来解决一下,一个类文件,省去每个页面都写的麻烦
在Web开发中,用户在提交表单后可能会意外地点击浏览器的刷新或后退按钮,导致数据重复提交,这在数据库操作中可能引起严重问题,比如财务交易的重复扣款或者用户信息的重复录入。针对这个问题,我们可以采取多种...
在ASP.NET web应用程序中,"刷新重复提交"是一个常见的问题,它发生在用户点击浏览器的刷新按钮或者使用前进/后退导航时。这可能导致数据的不一致性和错误,因为服务器可能会收到相同请求的多次处理,而这些请求原本...
本文旨在深入探讨如何有效地预防页面的重复提交与刷新现象,通过具体实例和详细的分析来帮助开发者更好地理解和解决这类问题。 #### 二、问题背景及应用场景 ##### 1. 重复提交与刷新场景 重复提交通常发生在用户...
- 利用`window.location.replace()`替换当前URL,防止浏览器历史记录中保存该页面,减少用户通过刷新或后退按钮重复提交的可能。 - 设置表单提交后的提示信息,告知用户操作已完成,避免再次点击。 - **防止后退...
JavaScript 防止表单重复提交、防刷新、防后退解决方案 在 Web 开发中,防止表单重复提交、防刷新、防后退是非常重要的,否则可能会导致数据的不一致和安全问题。本文将介绍服务器端和客户端两种解决方案。 服务器...
2.已经提交成功,然后又刷新页面重复提交 3.已经提交成功,然后点击后退,然后又重复提交。 重复提交的缺点: 1.加重了服务器的负担。 2.导致错误的操作。 实例:如果在淘宝上买一个东西,然后点击了订单提交,然后...
**场景说明**:重复提交和刷新通常发生在用户操作过程中,特别是在提交表单后,如果用户不知道操作是否成功完成,可能会尝试刷新页面或重复点击提交按钮,这就会导致数据被重复提交到服务器。 **是否需要处理**:...
使用注解解决页面重复提交问题,不仅可以提高代码的可读性和维护性,还能减少对Session或Cookie的依赖,降低服务器资源消耗。结合自定义拦截器,我们可以创建一个健壮的防重复提交系统,适应各种复杂的Web应用场景。...
这种现象也被称为“刷新重复提交”。解决这个问题的方法可以分为两大类:一类是不保存缓存,另一类是保存缓存但通过特定机制避免重复提交。 第一类方法中,一种常见的做法是设置页面缓存属性为“NoStore”,即不...
解决重复提交问题的8种方案 在本篇文章中,我们将讨论重复提交问题的八种解决方案。重复提交问题是指在Web应用程序中,当用户提交表单时,可能会导致重复提交,导致数据不一致和其他问题。为了解决这个问题,我们...
这种方法有效防止了用户短时间内多次点击提交按钮的情况,但并不能应对用户刷新页面或使用浏览器的前进/后退功能导致的重复提交。 第二种情况,用户在表单提交后刷新页面,会导致浏览器重新发送之前的POST请求,...
本篇文章主要介绍了网页如何防止刷新重复提交与如何防止后退的解决方法,具体如下: 提交后禁用提交按钮(大部分人都是这样做的) 如果客户提交后,按F5刷新怎么办? 使用Session 在提交的页面也就是数据库处理之前: ...
这是由于Session的安全保护机制导致的,因为浏览器在POST提交后尝试刷新页面,服务器会认为这是重复提交的请求,可能会拒绝执行,导致“网页过期”的错误提示。解决这个问题的一个方法是使用location.replace()方法...
- 使用Ajax进行异步提交,可以更精确地控制请求的生命周期,如在请求开始时显示加载指示器,请求成功后更新界面,请求失败时给出错误提示,且不会刷新整个页面,减少了重复提交的可能性。 9. **过滤器(Filter)**...