jquery ajax analysiert json bei einem Fehler nicht

8

Das jqXHR-Objekt von jQuery, das bei einem Fehler an den Callback übergeben wird, analysiert die json-Antworten nicht, daher ist responseJSON undefined nur responseText verfügbar.

Es funktioniert gut für erfolgreiche Anfragen, ich setze die richtigen Header mit dataType: 'json'

Anruf:

%Vor%

Anforderungsheader:

%Vor%

Antwortheader:

%Vor%

Antworttext:

%Vor%

responseJSON ist nicht definiert

Ist jQuery nicht in der Lage, json zu analysieren, wenn die Antwort auf ajax-Anforderungen nicht erfolgreich ist? Ich kann keine Dokumentation finden, um dieses Verhalten zu bestätigen oder zu leugnen (ich könnte einfach nicht hart genug suchen)

Ich kann natürlich parseJSON im fail Callback verwenden.

    
Rob 22.03.2012, 11:29
quelle

3 Antworten

12

Ich habe mir die jQuery ajax Callback-Methode angeschaut. Es führt die dataType-Konvertierung nur durch, wenn ( status >= 200 && status < 300 || status === 304 ) wahr ist, andernfalls wird die Antwort als solche an den entsprechenden Handler übergeben. Wenn die Anforderung ein Fehler ist, wird die Antwort nicht gemäß dem erwarteten dataType analysiert.

Wenn Sie weitere Informationen wünschen, können Sie nach der obigen Bedingung in der Datei jquery.js suchen und sehen, wie sie funktioniert.

    
Arun P Johny 22.03.2012, 11:46
quelle
1

Seit Version 1.5 von jQuery gibt es den statusCode-Handler:

%Vor%

In früheren Versionen sollten Sie den Antworttext jedoch separat analysieren, wenn der Fehlerstatus zurückgegeben wird:

%Vor%     
Pavel Petrov 20.06.2012 08:41
quelle
0

Ich denke, was Sie suchen, ist data.status und data.statusText

    
Sven Bieder 22.03.2012 11:36
quelle

Tags und Links