Die JQuery-Ajax-Fehlerfunktion wird auch dann ausgeführt, wenn die Abfrage erfolgreich ist

8

Ich versuche JQuery zu lernen - und ich habe ein kleines Problem mit Ajax. Ich versuche, ein JavaScript-Array mit Werten zu füllen, die von einer XML-Antwort von einer Seite zurückgegeben werden.
Hier ist meine Hauptseite (ajax.html):

%Vor%

fiber.js ist das:

%Vor%

ajaxHelper.pl erzeugt dieses XML (ohne die umgekehrten Schrägstriche in \?) (als Inhaltstyp text / xml):

%Vor%

Das Problem ist, dass jedes Mal, wenn ich ajax.html lade, die Ajax-Abfrage erfolgreich ist, aber die Fehlerfunktion ausgeführt wird! xhr.status = 200 (was bedeutet, dass die Abfrage in Ordnung war) und die Ausnahme "geworfen" ist nicht definiert.

    
Adrian 09.06.2009, 09:11
quelle

3 Antworten

4

Tritt dies in allen Browsern auf?

1) Sie können complete anstelle von success und error verwenden, um den Status zu verarbeiten. Verwenden Sie ein if, um den XHR-Rückgabestatus zu überprüfen und entsprechend zu verzweigen.

Ссылка

    
Antony Carthy 09.06.2009, 09:29
quelle
5

über Ссылка

  

Der Server konnte ein XML-Dokument mit einem 200-Statuscode zurückgeben. Wenn der Browser das Dokument jedoch nicht parsen kann, tritt ein Parsefehler auf und der Fehlerhandler von jQuery wird aufgerufen.

Stellen Sie sicher, dass Sie gültiges xml zurückgeben:)

    
bloudermilk 31.12.2009 07:53
quelle
1

AJAX ist asynchron. Das bedeutet, dass die $ .ajax-Funktion eine Anfrage an die ajaxHelper.pl startet. In der Zwischenzeit wird der Code weiterhin ausgeführt. Die Anfrage hat keine Chance zurückzukehren, bevor Sie die nächste Zeile nach $ .ajax (...)

erreichen %Vor%

Ich nehme an, Sie bekommen eine Ausnahme, dass ringType nicht definiert ist ...? Und deshalb könnte die Fehlerfunktion ausgelöst werden.

    
gregers 09.06.2009 09:40
quelle

Tags und Links