ich senden versucht, ein Array als Teil einer Ajax-Anforderung wie folgt an:Wie Sie ein Array als Teil eines (jquery) Ajax-Request
var query = [];
// in between I add some values to 'query'
$.ajax({
url: "MyServlet",
data: query,
dataType: "json",
success: function(noOfResults) {
alert(noOfResults);
}
});
}
ich in dem, was ich wieder das sehen wollte Servlets, so habe ich diese Zeile:
System.out.println(request.getParameterMap().toString());
Welche {}
was auf eine leere Karte zurückgegeben.
Firebug sagt mir, ich bin immer einen 400 bad request
Fehler
Wenn ich einen querystring wie attribute=value
als ‚Daten‘ sende dann fein alles funktioniert, so dass es in der Lage zu tun hat, nicht um ein Array zu senden gibt. Was muss ich tun, um diese Daten zur weiteren Verarbeitung in das Servlet zu bekommen? Ich möchte es nicht herausziehen und es in einen Abfrage-String in der JS verwandeln, wenn ich es vermeiden kann.
EDIT: Ich habe die .serializeArray() (jQuery) -Funktion vor dem Senden der Daten verwendet. Ich bekomme die 400 nicht, aber nichts nützliches wird durchgeschickt.
Was enthält 'query'? (Zeichenfolgen/Objekte?). Wenn Sie ein Array an 'data' übergeben, geht jQuery davon aus, dass es folgendes Format hat:' [{Name: 'Name', Wert: 'Jim'}, {Name: 'Alter', Wert: '20'}] '. – Matt
Jeder Array-Wert soll ein weiteres Array von Objekten sein - aber im Moment versuche ich nur ein einfaches Beispiel zu bekommen, ähnlich dem, was Sie dort haben. – Ankur