禁止post请求后退、刷新时重新发送post数据

最近有一个需求,就是用户使用post方式登录,然后退出;再点击浏览器的后退按钮回退到发送post请求的那个位置,这时刷新页面,用户名、密码等信息会重新发送,这样,显示用户已登录。下面给出几种避免这种现象的办法:

登录成功后并不直接显示页面,而是:

1. 使用header方式跳转到本页

2. 使用html里的meta来刷新到本页

3. 使用JavaScript的 location.replace() 方法,刷新到本页;注意不能用location.href = …;详见二者的区别

这三种方法本质是一样的,就是让第二次的get请求覆盖上次post请求,这样浏览器的history里面就不会有那次post请求了,用户也就回退不到那次post请求的位置了

 

应该还有更好的办法,但是目前还没有发现,继续探索…

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据