JS文件中获取项目路径名(限定名)

往常写js都是在jsp文件里面写,可是当js占据整个jsp文件的三分之二的页面或者更多时你可能就会感到可读性很差了 并且也不利于管理。于是你终于想起来这些js归类到各自的.js文件 就像管理java函数一样把它归类到各自的.java文件做到单一职责归类

可是由于你几乎全部是在jsp当中使用的js 放在js文件里反而有些用不好了

比如你要在js文件中写了这么一个ajax

$.ajax({

url:'<%=request.getContextPath%>/xx/xx.do',

type:'post',

data:{},

dataType:'json',

success:function(){

},

error:function(){

}

})

可是当你发送请求的时候 忽然发现 诶?400?

HTTP 请求400的意思是 语意有误,当前请求无法被服务器理解,除非进行修改,否则客户端不应该重复提交这个请求

Bad Request也是指出了 错误的请求

 

原因你已经知道了${pageContext.request.contextPath}或<%=request.getContextPath%> 在js文件中用不了了

明人不说暗话今天我就碰到这个问题了 那么如何在js文件中获取项目限定名呢 、

解决方式如下:

var localObj = window.location; 这个的意思是获取当前页面的地址

var protocol = location.protocol 获取http或https

var host = localObj.host 获取JSP地址栏IP和端口号 //localhost:8080

var contextPath = localObj.pathname.split("/")[1]; 获取项目名

var basePath = protocol +"//"+host+"/"+contextPath;

JS文件中获取项目路径名(限定名)_第1张图片

一眼就能看明白

 

 

你可能感兴趣的:(js/jquery)