3

您如何在 Java Web 应用程序中处理 Javascript 文件中的 URL,例如在执行 AJAX 请求时?

您总是使用绝对 URL进行 AJAX 调用吗?(包括 Web 应用程序上下文) - 如果应用程序上下文发生变化怎么办?

还是您使用相对 URL?这很困难,因为可以通过应用程序中的多个不同 URL 映射加载 JSP 文件。

为了更清楚:

假设我有一个在http://www.example.com/myapp/下运行的 java 应用程序 myapp.war

在 Javascript 文件中,我想对 /getData.json 进行 AJAX 调用 - 我可以通过绝对 URL 来执行此操作:

$.ajax({
  url: "/myapp/getData.json",
  cache: false
}).done(function(data) {
  ... 
});

这只有在我不重命名应用程序时才有效

或通过相对 URL

$.ajax({
  url: "getData.json",
  cache: false
}).done(function(data) {
  ... 
});

但仅当当前页面位于正确的路径中时,相对 URL 才有效。

4

1 回答 1

2

绝对是首选;考虑一下您更改应用程序名称的频率与您弄乱文件结构的时间(提示:几乎从不与不那么罕见)

否定也建议使用绝对路径;如果您使用相对路径,更改文件位置是您的问题中最少的 - 想想当您开始重构代码时会发生什么(这很常见):方法,可能包含脆弱的 URL 引用,被提取到实用程序类一直以来,这样的类可能会放在其他文件中。

底线是相对路径将有效地使您的代码僵化,而绝对路径将允许更大的灵活性

于 2013-07-28T21:42:05.843 回答