Malzzeit,
ich verzweifle mal wieder an einem Problem, bei welchem ich auf eure Hilfe angewiesen bin. Ich hab mir ein Servlet gebaut, welches eine DB-Anfrage durchführt und die Ergebnisse ausgibt.
Funktioniert auch wunderbar, wenn ich die URL des Servlets in den Browser einhacke. Nun versuch ich, das Servlet in einer Webanwendung mittels AJAX anzusprechen (also Javascript), bekomme als Antwort auch eine schöne 200er-HTTP-Meldung, nur steht da nix mehr drin in der Antwort. Also hab ich mal serverseitig mir angschaut, was da versendet wird (darum das
) und dieses als valide identifiziert.
Nun hab ich im DragonFly nachgesehen, welche Datenpakete zum Server gehen und welche ankommen. Alle Paramater werden mittels HTTP-POST versendet, woraufhin die bereits erwähnte Antwort generiert wird und wieder beim Client landet. Dass sie auch wirklich ankommt, sehe ich anhand der Größe der empfangenden Daten sowie der vom Servlet erzeugten
. Weder im DragonFly noch letzlich in der Webseite kann ich diese Daten jedoch verwenden.
Hier mal das Skript zum Laden der Daten:
Das gleiche Problem tritt auf, wenn ich den POST durch ´n GET ersetze und einfach die ganzen Parameter an die URL dranhänge. So langsam gehen mir aber ehrlich gesagt die Ideen aus, woran ich noch testen soll...
Ich vermute mal, dass das ganze Thema eher eine Angelegenheit unsere Javascript-Kollegen ist und es sich aufgrund der geringen Zahl dieser Gruppe hier im Forum eher im Sande verlaufen wird, aber vlcht. gibt´s ja doch noch irgendwo einen Guru, der sich mit beiden Seiten der Web.Kommunikation auskennt und eine Vermutung hat, wo das Problem liegen könnte.
ich verzweifle mal wieder an einem Problem, bei welchem ich auf eure Hilfe angewiesen bin. Ich hab mir ein Servlet gebaut, welches eine DB-Anfrage durchführt und die Ergebnisse ausgibt.
Java:
PrintWriter writer;
String message;
try {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/plain");
writer = response.getWriter();
message = "irgend ein JSON-Objekt";
response.setContentLength(message.getBytes().length);
logger.debug(message);
writer.write(message);
writer.flush();
writer.close();
} catch (SQLException e) {
logger.error(e.getMessage());
response.sendError(500, "An internal error occured due to database-problems");
} catch (IOException e) {
logger.fatal(e.getMessage());
response.sendError(500, "There was an error on the servers file-system which prevented him from fullfilling the request");
} catch (IllegalArgumentException e) {
logger.error(e.getMessage());
response.sendError(502, e.getMessage());
}
Code:
logger.debug
Nun hab ich im DragonFly nachgesehen, welche Datenpakete zum Server gehen und welche ankommen. Alle Paramater werden mittels HTTP-POST versendet, woraufhin die bereits erwähnte Antwort generiert wird und wieder beim Client landet. Dass sie auch wirklich ankommt, sehe ich anhand der Größe der empfangenden Daten sowie der vom Servlet erzeugten
Code:
ContentLength
Hier mal das Skript zum Laden der Daten:
HTML:
reqString = "gender=Mann&reservation=×pan=&area=&geometry=&";
xmlhttp.onreadystatechange = callback;
xmlhttp.open("POST", url, true);
//Send the proper header information along with the request
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", reqString.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(reqString);
Ich vermute mal, dass das ganze Thema eher eine Angelegenheit unsere Javascript-Kollegen ist und es sich aufgrund der geringen Zahl dieser Gruppe hier im Forum eher im Sande verlaufen wird, aber vlcht. gibt´s ja doch noch irgendwo einen Guru, der sich mit beiden Seiten der Web.Kommunikation auskennt und eine Vermutung hat, wo das Problem liegen könnte.