Struts的JQuery.ajax错误400错误请求

时间:2019-01-25 10:13:41

标签: java jquery ajax struts

我有一个由Struts1,Java和JSP组成的网站,我需要动态地从Web服务获取数据。 我在JSP中使用AJAX调用java方法,但遇到错误400:无论我如何尝试,请求均不正确。 这是我的JSP中的Javascript函数:

var panierSansFares=new Array();

function myFunction(){

        $.ajax({
            url: "myPath/getFares.do?method=doGet",
            type: 'GET',
            dataType: 'json',
            contentType: "application/json; charset=utf-8", // this
            data: 'panierSansFares='+JSON.stringify(panierSansFares),
            success: function(res) {
                alert(res);
            }
        });
  }

请注意,panierSansFare位于对象数组中,并且在调用函数时不为空。 在我的STRUTS中,动作:

<action path="/getFares" 
            type="myPath.GetFaresServlet"
            scope="request" >
        </action>

最后,我的Java代码:

public class GetFaresServlet  extends Action {
   private static final long serialVersionUID = 1L;

   protected void doGet(HttpServletRequest request, HttpServletResponse response, ActionMapping actionMapping) throws IOException {
                  /**Some stuff**/

   }
}

我的错误400来自Struts,因为我可以在Chrome开发人员工具(“网络”标签)中看到“请求了无效的路径”错误。

我试图绕过Struts,只是直接将Java作为servlet调用,但是我做不到,出现了error404。

我以前从未在Struts中使用过Ajax,所以我缺乏知识来查找问题所在。

谢谢

1 个答案:

答案 0 :(得分:0)

我不明白您的问题,但我遵循此代码进行api调用

function APICall(url, methodType, data) {
    var d = $.Deferred();
    methodType = methodType || "GET";
    data = data || null;
    $.ajax({
        url: url,
        async: true,
        method: methodType,
        data: data,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response, status, request) {
            d.resolve(response, status, request);
        },
        error: function (error) {
            d.resolve(error.responseJSON);
        }
    });
    return d.promise();
}
APICall(url, methodType, data).done(function (response, status, request) {
    d.resolve(response, status, request);
}).fail(function (response) {
    d.resolve(response, status, request);
});