0

在我的Ajax请求中,我正在调用这样的动作类:

var ajaxRequest;
ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("GET", "../displayProjects.action?userMasterID=" + userMasterDTO.id );
ajaxRequest.send(null);

struts.xml的如下:

<package name="default" extends="json-default">
  <action name="displayProjects"
      class="com.activitymanager.action.ExpenseTrackerAction"
      method="doGetProjectDetails">
    <result type="json"/>
  </action>
</package>

我无法使用上面的 JavaScript 调用动作类。我如何让这个工作?

4

4 回答 4

1

您可能希望使用 Jquery 来处理您的 AJAX 调用。请参考这个答案:Stackoverflow #12137803

于 2012-12-31T14:33:10.820 回答
1

使用 Firebug 的 Network 选项卡或一些此类工具来查看您发送的 ajax 请求。然后尝试将相同的请求 URL 放入浏览器的地址栏中,看看它是否有效。我的猜测是它与您在 URL 中输入的“../”有关。

于 2012-12-31T14:37:56.110 回答
0

只需输入正确url的操作即可

ajaxRequest.open("GET", "/displayProjects.action!doGetProjectDetails?userMasterID=" + userMasterDTO.id );
于 2012-12-31T19:31:34.913 回答
0

你为什么不使用 Jquery Ajax apis 来进行 ajax 调用。它让事情变得如此简单:) 示例:

function Ajaxcall() {

        var xhttp = $.ajax({
            success : function(response) {
                alert("Ajax call was Successful");

            },
            url : "someAction.action",
            type : "POST",
            async : true,
            data : "name=" + str

        });

    }

并且您的 struts.xml 文件需要是这样的:

<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="false" />

    <package name="default" extends="struts-default,json-default" namespace="/">
<action name="displayProjects"
      class="com.activitymanager.action.ExpenseTrackerAction"
      method="doGetProjectDetails">
    <result name="success" type="json">/path/to/JSP-file/making/ajax/call</result>
  </action>
</package>
</struts>
于 2013-01-02T13:05:38.057 回答