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

ajax呼び出しにJquery Ajax APIを使用しないのはなぜですか..それは物事をとても簡単にします:) 例:

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 に答える