解决请求重定向无法跳转以及页面无限循环跳转

来源:互联网 发布:加内特04季后赛数据 编辑:程序博客网 时间:2024/06/05 19:50

问题1:请求重定向无法跳转

原因:由于前台使用了一些框架,部分组件是利用的iframe来写页面的,导致后台对请求进行重定向时,前台页面无法跳转,而是在对镶嵌iframe中的页面进行跳转,无法实现在浏览器地址栏上的跳转。


解决:在重定向的页面中写上一段让浏览器重定向的JavaScript代码

如,我这里用户在cookie失效的情况下,需要让用户页面跳转到用户登录页面,我就在登录页面上写上了下面的代码,这里要强调的是,该代码必须是页面里最后的javaScript代码,否则前台的部分javaScript实现的功能会出现异常。如下图所示。


//s为获取浏览器地址栏上地址,如果是在iframe中,一开始跳转到login页面时,    //只是在iframe一个框架里面,所以不是没有实现真正的跳转    var s = window.location.href;    //这里通过在获取地址栏上地址,来判断是否是登陆页面的地址;如果不加这个判断,    //直接跳转,这样会在前台无限循环跳转。    if(s.indexof("login地址")==-1){    window.location.href="login地址";   //或者使用window.location.assign("login地址");    } 





问题2:前台跳转时,出现不断的无限循环跳转。

原因:如上面代码所示,没有在把跳转的javaScript代码放在判断中,判断当前页面是否是当前登录页面,否则在浏览器加载跳转页面是,执行j到该avaScript代码时,又会重新进行一次跳转,这样就产生了无线循环。

解决:如上图代码,在跳转前加上判断当前页面是否是要跳转的页面


知识点补充:

Window 对象:所有浏览器都支持 window 对象。它表示浏览器窗口。
window.location 对象在编写时可不使用 window 这个前缀。
window.location.href="index.aspx":表示重新定向到新页面,同时刷新打开的这个页面;
window.location.href:返回当前页面的 URL。
window.location.assign() 方法加载新的文档。


参考资料:

W3CSCHOOL---http://www.w3school.com.cn/js/js_window.asp

javascript中window.open()与window.location.href的区别----http://blog.csdn.net/lingling_jy/article/details/8191107



0 0
原创粉丝点击