如何避免在js/ajax脚本中对应用程序上下文路径进行硬编码

bal*_*teo 7 javascript ajax jquery spring-mvc

我使用Spring MVC和Javascript/ajax.我的ajax脚本引用服务器端资源的方式存在问题.

假设我有两个页面需要通过ajax 使用相同的服务器端资源:

第一页的网址是:

  • /myapp/advertisement/28/edit
  • /myapp/signup

假设我的ajax脚本需要使用的服务器端资源是:

  • /myapp/geolocation/addressAutocomplete

截至目前,我已经硬编码了应用程序上下文路径,即/myapp在我的ajax脚本中.

如果我的应用程序上下文路径发生变化,我需要更新的是我的脚本.

有解决方案吗?

dig*_*oel 7

在包含脚本的HTML页面中,您可以放置base指向上下文的HTML 标记.请参阅如何获取域URL和应用程序名称的答案?

你可以阅读有关base的标签http://www.w3schools.com/tags/tag_base.asp其中规定The <base> tag specifies the base URL/target for all relative URLs in a document.

在决定是否使用此标记之前,可能值得阅读答案是否建议使用<base> html标记?


axt*_*avt 6

您可以使用$.ajaxPrefilter()前缀路径到所有jQuery AJAX请求.

它可以在<script>页面元素中配置,其中上下文路径值可用(例如,${pageContext.request.contextPath}在JSP中).