Ich habe folgende jQuery Ajax-Aufruf (Es gibt keine anderen globalen Einstellungen/Handler):Warum ruft jQuery meinen Ajax-Fehlerhandler nicht auf?
$.ajax({
url: "http://www.blah.com/url/does/not/exist",
type: "get",
data: someData,
dataType: "json",
error: function (xhr, msg, ex)
{
alert("Failed: " + msg);
},
complete: function (xhr, msg)
{
alert("Done: " + msg);
}
Ich würde meine Fehler-Handler erwarten aufgerufen werden, sondern die complete
Ereignis ausgelöst wird und die Warnung angezeigt Done: success
. In meinem Javascript-Konsole sehe ich die folgende Meldung:
XMLHttpRequest cannot load http://www.blah.com/url/does/not/exist.
Origin null is not allowed by Access-Control-Allow-Origin.
- Warum wird mein Fehler-Handler nicht aufgerufen?
- Was bedeutet die
Origin
Nachricht, die auf der Konsole protokolliert wird?
Dank!
Ich habe zu früh gejubelt ... Jetzt wird weder 'Erfolg' noch 'Fehler' aufgerufen, und die Konsole zeigt an: 'Fehler beim Laden der Ressource '- irgendwelche Ideen? –
Nun, 'Fehler beim Laden der Ressource 'ist Ihr' 404' Fehler. Das bedeutet, dass der Fehlerhandler nur aufgerufen wird, wenn der Webserver die Anfrage tatsächlich bearbeitet. Mit anderen Worten, es wird nur für "5xx" -Fehler und nicht für 4xx-Fehler aufgerufen, daher wird es nicht aufgerufen, wenn die Seite nicht existiert. –
Ok, danke. Ich frage mich, was ist der Sinn eines Fehler Handlers, wenn es nicht alle Fehler abfängt? Der wahrscheinlichste Fehler, den ich behandeln muss, ist ein Netzwerkproblem (keine Verbindung), das ein 404 ... –