案例:在a页面超链接,然后打开b页面,刷新一次b页面(只让页面刷新一次)

说明:这个文章是解决上一篇系统跨域访问的遗留问题

此处可略:(系统跨域访问以后由于被跨域访问的系统有拦截器;大致是:拦截器(通过cookie确定用户信息布局)-->跨域时登陆验证(账号、密码等信息存session)-->拦截器(再次通过cookie确定用户信息布局,最终导致的结果是跨域访问以后实际用户已经登录被跨域的系统,但是需要点击一下被跨域系统的功能、或刷新一下浏览器;用户信息才会显示。

1.不需要在a页面做任何处理

我当时用下面的这些方法,不能刷新b页面

window.open("http://localhost:8090", "_blank"); 
window.location.reload();
location.replace(location);
top.location.reload();
self.location.reload();
location.replace("http://localhost:8090");
Document.domain='http://localhost:8090';
window.opener.location.href=window.opener.location.href; 
location.reload(true);
window.location.href="https://www.baidu.com"
parent.location.reload();
parent.mainFrame.location.reload();
history.go(0);

2.在b页面处理,通过以下两个方法:

方法一:b页面进去的时候,每隔2秒刷新一次页面

超链接打开一个页面,并强制刷新一次

<meta http-equiv="refresh" content="2"> //每隔2s刷新一次b页面
<meta http-equiv="refresh" content="2;url=http://localhost:8090">//每隔2s刷新一次url上的页面

注:这种方法太消耗服务器的资源,不停的请求后台,用户量大时服务器顶不足。

方法二:b页面进去的时候,只刷新一次页面

超链接打开一个页面,并强制刷新一次

代码:

    <script>
        function reurl(){
            url = location.href;
            var times = url.split("?t=");
            if(times[1] != 1){
                url += "?t=1";
                self.location.replace(url);
            }
        }
        οnlοad=reurl
    </script>

 

相关文章: