我试图将数组作为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错误
400 bad request
如果我像这样发送一个queryString attribute=value作为“数据”,那么一切工作正常,因此它与无法按原样发送数组有关。我要怎么做才能将该数据放入servlet进行进一步处理。如果可以避免,我不想将其拉出并变成JS中的queryString。
attribute=value
编辑: 发送数据之前,我使用了.serializeArray()(jQuery)函数。我没有得到400,但没有发送任何有用的信息。
您必须发送一个首先使用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); } }); }