Ich habe Kunden, die AJAX-Anrufe ausgeben. Diese Aufrufe verweisen auf URLs, die auf der Serverseite durch Spring Security geschützt sind. Wenn die Sitzung des Benutzers abgelaufen ist, habe ich ein Anmeldeformular in einem Leuchtkasten. Nachdem der Benutzer sich erfolgreich angemeldet hat, möchte ich, dass der Client den AJAX-Aufruf erneut ausführt.Wie kann ich nach erfolgreicher Spring Security-Anmeldung die AJAX-Erfolgsfunktion aufrufen?
Hier ist ein Beispiel für die Client-Seite Code, der einen AJAX-Aufruf macht:
function handleSearchClick(evt) {
var setupOptions = {
success: loadSearch,
type: "POST",
dataType: "json",
url: "../search.ajax",
error: handleError, // how can I pass callback info i.e. I want to be able to execute $("#searchForm").ajaxSubmit(setupOptions); from handleError?
timeout: 50000
};
$("#searchForm").ajaxSubmit(setupOptions);
}
Wenn die Authentifizierung fehlschlägt, der Server eine 401 zurückgibt, die in dem Client führt Aufruf handle. Ist es möglich, eine Callback-Funktion an handleError zu übergeben? Ich würde der Rückruf
$("#searchForm").ajaxSubmit(setupOptions);
I Lösungen für dieses Problem gesehen haben erneut ausführen wollen, wo der Server eine Erfolgsantwort auf AJAX Anrufe zurückgibt, die eine Sitzung haben abgelaufen. Dann sucht die Erfolgsfunktion nach etwas in der Antwort, um das Sitzungszeitlimit zu kennen. Der Client speichert dort eine Callback-Funktion. Ich bevorzuge es jedoch, dies in der Fehlerfunktion zu behandeln.
hat meine Antwort für Sie funktioniert? – Alex
Danke für die Antwort. Im Code unten "Aber Sie könnten Folgendes tun", bin ich mir nicht sicher, wie handleError $ ("# searchForm") aufrufen kann. AjaxSubmit (setupOptions). Könnten Sie bitte bearbeiten, um mehr Details darüber zu erhalten, wie dies geschehen würde? – James