作者:顾玉妙 | 来源:互联网 | 2023-09-08 17:15
在我的站点中有一个搜索页,搜索功能是用POST传递关键字,现在用户搜索关键字“电影”,获得搜索结果后,点击了此页面中的登录连接,登录成功后,我是用JS语句:window.history.go(-1);
在我的站点中有一个搜索页,搜索功能是用POST传递关键字,现在用户搜索关键字“电影”,获得搜索结果后,点击了此页面中的登录连接,登录成功后,我是用JS语句:window.history.go(-1);window.location.reload()返回登录前页面,但这时候页面会提示:
若要再次显示该网页,web浏览器需要重新改善您以前提交的信息,如果您正在交易,应单击“取消”避免重复交易,否则,请单击“重试”再次显示该网页。
这个提示影响用户体验,如何解决这个问题呢?在其他页面中都正常。
16 个解决方案
history.go(-1)或者history.back()这两个js的方法就能实现,也可以通过$_SERVER['referer']存储来实现
用php 的header来跳转吧
header('Location: http://www.example.com/');
另外用js
window.history.go(-2);window.location.reload()
看看行不.
当调用登陆的那个页面的时候就记录上个页面的COOKIE
然后登陆完成以后跳转COOKIE
就用window.history.back()就可以了,不要那么复杂
这些方法都不行啊,用JS的history.back()会跳到搜索页的上一页,也就是丢失了用户的搜索结果,而且如果是首页的话,这样会跳转到其他网站页面上去,比如我打开我的IE进入主页:www.xx.com,然后再输入loclhost/index.php进入我的站点,然后登录,这样的话,会跳转到www.xx.com,这不是很可笑?
history.go(-2)也是一样,至于一楼的$_SERVER['referer']方法我没测试,因为我是用的ajax,也就是js,不懂怎么使用PHP方法。还望高人指点。
Window history back()没用么。简单又实惠
很感谢各位前辈的热心指点,现在决定把表单改造成用GET方式提交来完成搜索,之前也是因为看到别人说GET方式不太安全才决定要用POST的,谁知道现在又碰到这个问题。还是用回GET吧,