Wenn ich meinen Server herunterbringe und eine Ajax-Anfrage an ihn mache, zeigt Firebug, dass die Anfrage einige Sekunden nach der Anfrage abgebrochen wird, und mein success
Handler wird aufgerufen.
Warum wird der Erfolgshandler aufgerufen, sollte es nicht der Fehlerbehandler sein? Und wie kann ich zuverlässig erkennen, dass es kein Erfolg war?
Code:
$.ajax({
url: url,
type: "POST",
data: data,
dataType: "json",
success:function(data, statusText, xhr){
//gets called on success, or even when server is down.
},
error: function(){
//called if server returns error, but not if it doesn't respond
}
});
UPDATE: dieses Verhalten nur auf localhost ist, geschieht es, wenn meine Entwicklung Server ausschalten. Ich habe getestet, was passiert, wenn ich versuche, den Produktionsserver zu erreichen, aber mein persönliches Internet offline geschaltet habe, und es hängt einfach, ohne Erfolg oder Fehler aufzurufen. Ich denke, ich sollte die Timeout-Eigenschaft für diesen Fall festlegen.
nicht positiv, aber vielleicht die Antwort von 'abort' ist anders als' fail'? Kannst du deinen Code posten? – hookedonwinter
Möglicherweise verwandt: http://stackoverflow.com/questions/2357147/ajax-how-to-prevent-jquery-from-calling-the-success-event-after-executing-xmlhtt –
Wie nehmen Sie den Server herunter? Ist es völlig unerreichbar oder wird es 404 Seiten bedienen? –