【发布时间】:2011-06-07 01:58:40
【问题描述】:
我尝试发送一个数组作为 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 错误
如果我将attribute=value 之类的查询字符串作为“数据”发送,那么一切正常,因此它与无法按原样发送数组有关。我必须做些什么才能将该数据放入 servlet 以进行进一步处理。如果可以避免的话,我不想把它拉出来并在JS中变成一个queryString。
编辑: 我在发送数据之前使用了 .serializeArray() (jQuery) 函数。我没有收到 400,但没有发送任何有用的信息。
【问题讨论】:
-
query包含什么? (字符串/对象?)。如果您将数组传递给data,jQuery 会假定它的格式为:[{ name: 'name', value: 'Jim' },{ name: 'age', value: '20' }]。 -
每个数组值都应该是另一个对象数组 - 但现在我只是想让一个简单的例子起作用,类似于你那里的例子。
标签: javascript jquery ajax arrays servlets