我有一个调用spring控制器并接收json的js文件,如下所示:
$.get('/app-web/submission/list/Get/',
{ statusCode:_statusCode,
startingIndex:_startingIndex,
pageSize:_pageSize
}, _callBack ).fail(_errorCallback);
现在'app-web'是应用程序的名称(war文件的名称)。所以,显然我想用变量替换它。我正在考虑创建一个全局js变量并通过服务器更改值。为此,我需要回答以下问题:
如果你有一个优雅的解决方案,那就太棒了!感谢。
答案 0 :(得分:0)
一个简单的技巧是在包含所有静态JS文件之前在JSP中定义一个全局变量:
<script>
var CONTEXT = "${pageContext.request.contextPath}";
</script>
<script src="..."></script>
并且,在静态JS文件中,要使用此全局变量:
$.get(CONTEXT + '/submission/list/Get/', ...);
答案 1 :(得分:0)
其实你在解决错误的问题;而不是查找相对于服务器根目录(“/”)的资源,您可以使用相对URL引用所有资源,即:
$.get('./submission/list/Get/'(*),
{ statusCode:_statusCode,
startingIndex:_startingIndex,
pageSize:_pageSize
}, _callBack ).fail(_errorCallback);
这意味着该位置在/submission/list/Get
relative 中被查找到当前位置(如果碰巧在不同的地方开始,您可能需要浏览层次结构)。使用相对URI使客户端代码更具可移植性,并且更少依赖于容器的配置和服务器端模板语言。
(*)'submission/list/Get/'
是等效的,但我相信从./
开始更好地传达意图