Problem mit sendRedirect in einen servlet-Container mit Hilfe von Jquery + AJAX
Werde ich versuchen zu erklären, meine Fragen/problem einfach.
In meiner jsp habe ich einige links, eins für jede Nachricht in den Foren. Wenn ich auf einen der ".löschen" - links, das folgende Skript ausgelöst wird:
$('.delete').click(function(event) {
event.preventDefault();
//some data recovering from the jsp's tags
var idMsg = $(this).closest('.li').attr('id');
var action = $(this).attr('name');
var origin = $('div#origin').attr('name');
...
//some checking
//alert('id: '+idMsg);
...
//I send the info to delete the message in the servlet
$.post("../app/ForumCampus", {action:action, idMsg:idMsg, origin:origin}, function(data) {
});
//$('.output').append('Message deleted successfully.');
});
Zuerst wollte ich nicht, die Seite zu aktualisieren und ich zeigte nur, die obige Erfolgsmeldung.
Aber jetzt, da die Paginierung, ich brauche zu aktualisieren, das servlet, und ich habe den folgenden code in den post-Methode:
response.sendRedirect(contextPath+"/app/" + origin);
Aber wenn AJAX geht an das servlet, kommt all das Zeug (löscht die Nachricht richtig), aber keine Umleitung auf das servlet. Die Seite nicht aktualisieren. Wenn ich die Seite aktualisieren manuell alles OK, wird die gelöschte Nachricht nicht angezeigt.
Meine Fragen sind:
1) Das servlet nicht umleiten, weil das script noch nicht fertig ist? Warum?
2) ich kann zu aktualisieren das servlet nur die Eingabe das folgende code in der .klicken Sie auf event:
location.reload();
Aber, es ist Weise, die Sie als besser? Ohne Verwendung von Javascript oder so?
Dank zum Voraus, zu lernen, mit Ihnen ist so cool 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Offensichtlich, Ihre Ajax-Aufruf nicht durchführen, ein redirect im browser, wie soll das funktionieren? Denken Sie daran, es ist ein asynchroner Aufruf von 'hinter den kulissen'.
Wenn Sie Steuern möchten, der leitet per Ajax, die Sie haben zu prüfen, das Ergebnis des Ajax-calls (HTTP-Header) und dann manuell redirect mit JavaScript (z.B. mit
document.location
).BTW: ich denke, das ist keine gute Idee. Im Falle der komplexe Ajax-Anwendung die Javascript-Funktionen spielen die Rolle von dem, was MVC-Muster ruft den controller. Also, deine Ajax-Funktion sollte wissen wenn umzuleiten.
Ich denke, Ajax wird verwendet für Asynchrones java script und XML, und es im hintergrund laufen, also eher als redirect können Sie einfach erhalten Sie alle mit dem Wert des html-input-tag mit Anfrage.getparameter() servlet und leiten das servlet mit
Javascript oder jquery :
Ist dies für Sie geeignet?