案例:在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);
}
}
onload = reurl
</script>