簡體   English   中英

無法使用Ajax + JSON調用操作

[英]Unable to call action using Ajax + JSON

在我的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調用動作類。 我該如何工作?

您可能希望使用Jquery來處理您的AJAX調用。 請參考這個答案: Stackoverflow#12137803

使用Firebug的“網絡”選項卡或某些此類工具查看您要發送的ajax請求。 然后嘗試將相同的請求URL放入瀏覽器的地址欄中,看看它是否有效。 我的猜測是它與你在URL中放入的“../”有關。

只需為您的操作鍵入正確的url即可

ajaxRequest.open("GET", "/displayProjects.action!doGetProjectDetails?userMasterID=" + userMasterDTO.id );

為什么你沒有使用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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM