一尘不染

如何将数组作为(jquery)ajax请求的一部分发送

ajax

我试图将数组作为ajax请求的一部分发送,如下所示:

var query = [];
// in between I add some values to 'query'
$.ajax({
    url: "MyServlet", 
    data: query,
    dataType: "json",  
    success: function(noOfResults) { 
    alert(noOfResults); 
    }
  });
}

我想看看我在servlet中得到了什么,所以我使用了这一行:

System.out.println(request.getParameterMap().toString());

返回{}表示空地图。

Firebug告诉我我遇到400 bad request错误

如果我像这样发送一个queryString
attribute=value作为“数据”,那么一切工作正常,因此它与无法按原样发送数组有关。我要怎么做才能将该数据放入servlet进行进一步处理。如果可以避免,我不想将其拉出并变成JS中的queryString。

编辑: 发送数据之前,我使用了.serializeArray()(jQuery)函数。我没有得到400,但没有发送任何有用的信息。


阅读 408

收藏
2020-07-26

共1个答案

一尘不染

您必须发送一个首先使用JSON.stringify进行字符串化的对象。

像这样:

var query = [];
// in between I add some values to 'query'
$.ajax({
    url: "MyServlet",
    data: JSON.stringify({ nameParameter: query })
    dataType: "json",
    success: function(noOfResults) {
        alert(noOfResults);
    }
  });
}
2020-07-26