【问题标题】:Problems with Struts and AJAXStruts 和 AJAX 的问题
【发布时间】:2010-10-01 13:52:20
【问题描述】:

这是我的问题,我正在构建一个模块化应用程序,我正在使用 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”,不知道怎么办,根据 struts 文档“prefix - 控制应切换到的模块的模块前缀(以“/”开头)。对默认模块使用零长度字符串。适当的 ModuleConfig 对象将作为请求存储属性,因此任何后续逻辑都将假定新模块。”

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

几乎忘了提到我正在使用 JQuery 来调用 AJAX 函数。

【问题讨论】:

    标签: java ajax struts


    【解决方案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 调用的任何地方使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多