在jsp页面上使用window.location.href = "com/forumAction_list.do";进行页面跳转的时候,在FF浏览器和谷歌浏览器下面都没问题,但是在IE下面获取到的路径就有问题,多点击两次就会出现 com/com/com/..../forumAction_list.do这样的问题,导致我的拦截器把路径给拦截下来。
在百度上找了很多内容,但是只有一种好使,方法如下:
function getContextPath() { var pathName = document.location.pathname; var index = pathName.substr(1).indexOf("/"); var result = pathName.substr(0,index+1); return result; } var path = getContextPath(); window.location.href = path+"/com/forumAction_list.do";
使用这种方式在本地的时候不管是IE还是FF或者谷歌都没问题了,但是放到服务器上测试的时候不管是IE还是FF都出现访问路径出错的问题,在网上看到有人说全路径,但是我在jsp页面<head>标签中加入了<base>也不行,在路径前面加上${pageContext.request.contextPath}也不行,特来请教各位大神们,这个到底该怎么搞?实在是没办法了,度娘都被我烦死了也没个结果
function getCurrentDir(){
var currentUrl = location.href;
if(currentUrl.lastIndexOf('/') ==currentUrl.length-1){
return currentUrl;
}else{
return currentUrl.substr(0,currentUrl.lastIndexOf('/')+1);
}
}
window.loction.href=getCurrentDir()+"com/for";
先谢谢你的回复,用你的方法测试了一下IE是没问题了,但是相同的问题又出现在了火狐浏览器里面
@李爱戴: 好吧,那可能是还没找到问题的根本。
判断浏览器版本,用不同的方法吧
经过两天的纠结,终于把问题解决了,可能是刚开始想的有些复杂了,就像很多人说的,只要使用绝对路径就可以了,下面是解决办法:
window.location.href = "/项目名称/com/forumAction_list.do";
只需要写出项目的绝对路径即可,经测试在本地和服务器上的火狐和IE浏览器都是可以正常使用的