最近有一个需求,就是用户使用post方式登录,然后退出;再点击浏览器的后退按钮回退到发送post请求的那个位置,这时刷新页面,用户名、密码等信息会重新发送,这样,显示用户已登录。下面给出几种避免这种现象的办法:
登录成功后并不直接显示页面,而是:
1. 使用header方式跳转到本页
2. 使用html里的meta来刷新到本页
3. 使用JavaScript的 location.replace() 方法,刷新到本页;注意不能用location.href = …;详见二者的区别
这三种方法本质是一样的,就是让第二次的get请求覆盖上次post请求,这样浏览器的history里面就不会有那次post请求了,用户也就回退不到那次post请求的位置了
应该还有更好的办法,但是目前还没有发现,继续探索…