Sie können die Verwendung following:
dataFilter(data, type)
die Anforderung abfangen, wenn es zuerst wieder aus dem kommt Server. Dies ist nicht genau das, wofür Sie es verwenden wollten, aber es ist eine universelle Vor-Erfolgsroutine.
Vorfehler? Vielleicht funktioniert ein globaler Fehlerhandler für Sie?
var obj = {
someHandler: function(data, xmlObj, status) {},
someHandler2: function(data, xmlObj, status) {},
someErrorHandler: function(xmlObj, status, error) {},
someErrorHandler2: function(xmlObj, status, error) {}
}
jQuery.ajax({
success:function(data, xmlObj, status) {
// decide based on data what the run 2nd
if (data.success) {
obj.someHandler(data, xmlObj, status);
}
else {
obj.someHandler2(data, xmlObj, status);
}
},
error: function(xmlObj, status, error) {
// decide based on data what to run 2nd
//same as above.
}
});
Ich mache etwas ähnliches in einem meiner Projekte. Ich habe ein globales Fehler-Objekt, wo ich einen Fehler-Handler basierend auf dem Typ des Fehlers, der vom Server zurückkommt, ausführen. Ich fand, dass dies eine einfache und schnelle Möglichkeit ist, eine gute Fehlerbehandlung für AJAX
Hallo, Problem ist, ich habe keine Möglichkeit, die xhr.status in der DataFilter-Methode zu unterscheiden und keine Möglichkeit, die eine oder andere Funktion zu starten . In meinem Fall würde ich jeweils zwei separate Funktionen starten. –
Wenn Sie den Aufruf der zweiten Funktion generisch machen, können Sie in beiden Fällen eine globale Erfolgs-/Fehlerfunktion verwenden und am Ende die spezialisierte Funktion aufrufen. Vielleicht eine Art von Objekt, das entscheidet, welche sekundäre Funktion aufgerufen werden soll? –
Haben Sie ein Stück Code, ich bin mir nicht sicher, sehr gut zu verstehen ... :( –