在我的站点中有一个搜索页,搜索功能是用POST传递关键字,现在用户搜索关键字“电影”,获得搜索结果后,点击了此页面中的登录连接,登录成功后,我是用JS语句:window.history.go(-1);window.location.reload()返回登录前页面,但这时候页面会提示: 若要再次显示该网页,web浏览器需要重新改善您以前提交的信息,如果您正在交易,应单击“取消”避免重复交易,否则,请单击“重试”再次显示该网页。这个提示影响用户体验,如何解决这个问题呢?在其他页面中都正常。

解决方案 »

  1.   

    history.go(-1)或者history.back()这两个js的方法就能实现,也可以通过$_SERVER['referer']存储来实现
      

  2.   


    用php 的header来跳转吧header('Location: http://www.example.com/');另外用jswindow.history.go(-2);window.location.reload()
    看看行不.
      

  3.   

    当调用登陆的那个页面的时候就记录上个页面的COOKIE
    然后登陆完成以后跳转COOKIE
      

  4.   

    就用window.history.back()就可以了,不要那么复杂
      

  5.   

    最简单的办法就是把你的“搜索页”改造成用 GET 方式提交。
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
      

  6.   

    造成现在这种情况的原因是因为你的提交方式为POST提交
    有这样一个办法:
    在登录成功的页面中用$_SERVER['HTTP_REFERER']获取到来源的页面地址,然后header跳转至该页面即可//登录成功后,需要跳转
    $src_page = $_SERVER['HTTP_REFERER'];
    header("location:".$src_page);
      

  7.   

    这些方法都不行啊,用JS的history.back()会跳到搜索页的上一页,也就是丢失了用户的搜索结果,而且如果是首页的话,这样会跳转到其他网站页面上去,比如我打开我的IE进入主页:www.xx.com,然后再输入loclhost/index.php进入我的站点,然后登录,这样的话,会跳转到www.xx.com,这不是很可笑?history.go(-2)也是一样,至于一楼的$_SERVER['referer']方法我没测试,因为我是用的ajax,也就是js,不懂怎么使用PHP方法。还望高人指点。
      

  8.   

    Window history back()没用么。简单又实惠
      

  9.   

    再说一次,把搜索页改造成以 GET 方式提交关键词。凡是以 POST 方式获得的页面,当用 history back 回到这个页面的时候,浏览器都会提醒是否重新提交 FORM 数据,用 GET 方式就没这个问题。至于说 GET 泄漏密码,是有这个问题,但搜索页不会有什么密码。另外,不要用 JS 来处理“返回到登录前的页面”。应该是在点击“登录”链接的时候,把当前页面的 URL 携带过去(或者通过 $_SERVER['referer']),等登录验证成功后,用 header('Location: ...') 跳转过去。--------
    With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea. It is
    hard to be sure where they are going to land, and it could be dangerous sitting under them as they
    fly overhead.
      

  10.   

    刚注意到这个说法。啥意思啊?你的“登录”不是一个独立的页面,而是用 AJAX 在当前页面里弹出对话框来完成,是吗?如果是这样的话,所谓“登录前的页面”,就是“当前页面”啊,那就别 history back 什么的了,只要 window.location.reload() 就够了,唯一需要做的就是把“当前页面”改造成用 GET 方式获取。
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
      

  11.   

    很感谢各位前辈的热心指点,现在决定把表单改造成用GET方式提交来完成搜索,之前也是因为看到别人说GET方式不太安全才决定要用POST的,谁知道现在又碰到这个问题。还是用回GET吧,
      

  12.   

    也好,来回多折腾几次,也就都弄明白了  ^_^所谓安全不安全,不是简单地给一个结论就完了。如果谁说 GET 不安全,那要讲清楚为什么不安全,在什么情况下不安全,然后你再看你自己的应用场景是不是符合他说的情况。
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)