0

这是我的问题,我正在构建一个模块化应用程序,并且我正在使用 struts-config.xml 中的 SwitchAction 更改为另一个配置文件,问题是当我更改为另一个模块时,然后返回默认配置 xml,我收到一个错误,因为我的页面使用 AJAX 请求从数据库获取一些数据,并且我发现我第一次发送以更改模块的前缀正在返回并返回错误的网址。以下是更好理解的示例:

页面 modulos.vm,访问 new 的链接,new 的链接具有前缀“new”,因此它使用此 URL“/new/new.do”访问“new”模块中的页面,访问 new.vm 没有问题,再次访问 modulos.vm,AJAX 函数应该是“/admin/modulos.do?somedata”,但是返回的 URL 是“/new/admin/modulos.do”,我不知道该怎么办,与e struts 文档“prefix - 控制应该切换到的模块的模块前缀(以“/”开头)。对默认模块使用零长度字符串。适当的 ModuleConfig 对象将存储为请求属性,因此任何后续逻辑都将采用新模块。”

所以有人知道为什么 AJAX 在 URL 中包含“新”吗?或者任何人对如何清除相对路径或可能对我有帮助的东西有任何想法?

差点忘了提我正在使用 JQuery 来调用 AJAX 函数。

4

1 回答 1

1

您需要使用绝对而不是相对 URL。目前,您的 JavaScript 正在基于当前上下文路径构建相对 URL。

如果你使用 JSP,你可以把它放在你的标题中:

<script type="text/javascript">
var CONTEXT_PATH = "<%= request.getContextPath() %>";
</script>

然后当您进行 AJAX 调用时,您需要像这样构建 URL:

$.post(CONTEXT_PATH + '/admin/modulos.do'....)

如果我需要将上下文路径导入 JavaScript,这就是我要做的 - 然后只需在需要对服务器进行 AJAX 调用的任何地方使用它。

于 2009-01-15T11:31:52.327 回答