Ich habe Javascript JQuery-Code, der alle 5 Minuten einen Ajax-Aufruf an den Server ausführt. Er dient dazu, die Serversitzung am Leben zu erhalten und den Benutzer angemeldet zu halten. Ich verwende die $.ajax()Methode in JQuery. Diese Funktion scheint eine 'error'-Eigenschaft zu haben, die ich für den Fall verwenden möchte, dass die Internetverbindung des Benutzers unterbrochen wird, sodass das KeepAlive-Skript weiterhin ausgeführt wird. Ich verwende den folgenden Code:
var keepAliveTimeout = 1000 * 10;
function keepSessionAlive()
{
$.ajax(
{
type: 'GET',
url: 'http://www.mywebapp.com/keepAlive',
success: function(data)
{
alert('Success');
setTimeout(function()
{
keepSessionAlive();
}, keepAliveTimeout);
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert('Failure');
setTimeout(function()
{
keepSessionAlive();
}, keepAliveTimeout);
}
});
}
Wenn ich es starte, wird alle 10 Sekunden in einem Warnfeld das Popup "Erfolg" auf dem Bildschirm angezeigt, was in Ordnung ist. Sobald ich jedoch das Netzwerkkabel abziehe, wird nichts angezeigt. Ich hatte erwartet, dass die Fehlerfunktion aufgerufen wird und eine Warnmeldung "Fehler" angezeigt wird, aber es passiert nichts.
Bin ich zu Recht davon ausgegangen, dass die Fehlerfunktion nur für Statuscodes gilt, die nicht vom Server zurückgegeben werden? Gibt es eine Möglichkeit, Netzwerkverbindungsprobleme beim Tätigen eines Ajax-Anrufs zu erkennen?