Überprüfen Sie den status des einen jQuery-ajax-request

Scheint es, dass die Erfolge, Fehler und die komplette Rückrufe nur ausgelöst wird, wenn der ajax-request ist in der Lage zu bekommen einige Antwort vom server.

Also wenn ich den server Herunterfahren, wird der folgende Fehler-callback nicht ausgeführt, und die Anforderung schlägt fehl, schweigend.

$.ajax({
  type: "GET",
  url: "http://localhost:3000/",
  dataType: "script",
  success: function() {
    alert("success");
  },
  error: function() {
    alert("error");
  }
});

Was ist der beste Weg, einen Fehler auslösen, wenn der server nicht erreicht werden kann überhaupt.

Bearbeiten - Von dem, was ich habe versucht zu Lesen und es scheint, dass jQuery built-in error-handling funktioniert nicht mit JSONP oder dataType: "script". Also ich werde versuchen, die Einstellung einer manuellen timeout.

Edit - Habe ein wenig Forschung und es sieht aus wie es nicht nur die ajax-Fehler-callback nicht funktionieren, aber Sie können nicht Abbrechen, ein ajax-request mit Datentyp-Skript oder jsonp, und diese Anfragen ignorieren Sie die timeout-Einstellung.

Gibt es eine alternative - die jquery-jsonp-plugin, aber es nutzt versteckte iframes, die ich lieber vermeiden. Also habe ich beigelegt, erstellen einer manuellen timeout-wie unten vorgeschlagen. Sie können nicht brechen Sie den Antrag, wenn es mal aus, was bedeutet, dass das Skript möglicherweise noch laden, auch nach dem timeout, aber zumindest etwas, das ausgelöst wird, wenn der server nicht verfügbar ist.

  • Die Jquery-ajax-error-handling gebaut (siehe meine Antwort unten), die Sie verwenden können ajaxsetup gelten diese Optionen.
Schreibe einen Kommentar