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.
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.
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%Tags und Links jquery