Javascript 无法使用Ajax调用操作+;JSON

Javascript 无法使用Ajax调用操作+;JSON,javascript,ajax,json,struts2,Javascript,Ajax,Json,Struts2,在我的Ajax请求中,我调用的动作类如下: var ajaxRequest; ajaxRequest = new XMLHttpRequest(); ajaxRequest.open("GET", "../displayProjects.action?userMasterID=" + userMasterDTO.id ); ajaxRequest.send(null); <struts> <constant name="struts.enable.DynamicMet

在我的
Ajax
请求中,我调用的动作类如下:

var ajaxRequest;
ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("GET", "../displayProjects.action?userMasterID=" + userMasterDTO.id );
ajaxRequest.send(null);
<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>
我的
struts.xml
如下:

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


我无法使用上述JavaScript调用action类。如何使其工作?

您可能希望使用Jquery来处理AJAX调用。请参考以下答案:。

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

只需在您的操作中键入正确的
URL

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

为什么不在Ajax调用中使用jQueryAjax API呢。。它让事情变得如此简单:) 例如:

您的struts.xml文件需要如下所示:

var ajaxRequest;
ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("GET", "../displayProjects.action?userMasterID=" + userMasterDTO.id );
ajaxRequest.send(null);
<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>

/path/to/JSP file/making/ajax/call

!doGetProjectDetails
不需要url的一部分。