Ich habe eine serverseitige Funktion, die Anmeldung erfordert. Wenn der Benutzer angemeldet ist, gibt die Funktion bei Erfolg 1 zurück. Wenn nicht, gibt die Funktion die Login-Seite zurück.Wie lasse ich jQuery warten, bis ein Ajax-Aufruf beendet ist, bevor er zurückkehrt?
Ich möchte die Funktion mit Ajax und jQuery aufrufen. Was ich tue, ist die Anfrage mit einem gewöhnlichen Link zu senden, mit einer Klick-Funktion. Wenn der Benutzer nicht angemeldet ist oder die Funktion fehlschlägt, möchte ich, dass der Ajax-Aufruf true zurückgibt, so dass die href ausgelöst wird.
Wenn ich jedoch den folgenden Code verwende, wird die Funktion beendet, bevor der Ajax-Aufruf ausgeführt wird.
Wie kann ich den Benutzer anmutig auf die Login-Seite umleiten?
$(".my_link").click(
function(){
$.ajax({
url: $(this).attr('href'),
type: 'GET',
cache: false,
timeout: 30000,
error: function(){
return true;
},
success: function(msg){
if (parseFloat(msg)){
return false;
} else {
return true;
}
}
});
});
Könnte ein alter Thread sein, aber wie @kofifus zeigt Einstellung a sync to false ist ein schlechtes Design und "keine Timeouts usw. werden verarbeitet". Könnte versuchen, diese vereinfachte Lösung - https: // stackoverflow.com/a/11576418/6937841 – Shan