Wie greife ich auf die JSON-Antwort mit jQuery.Ajax für einen 400-Fehler zu?

8

In jQuery sende ich Formulare an den Server. Wenn ein Validierungsfehler auftritt, erhalte ich einen 400-Fehler vom Server, und der Hauptteil des Dokuments ist ein gültiger JSON. Ich würde gerne wissen, wie man auf die Daten vom Server zugreifen kann.

Meine .error-Callback-Funktion für das jQuery.Ajax-Objekt wird nie aufgerufen, daher verwende ich die .statusCode {400} -Funktion. Das läuft gut, aber keines der Argumente enthält den Antworttext.

    
Thomas Hunter II 12.01.2012, 21:57
quelle

4 Antworten

7

Einige XHR-Implementierungen von Browsern verweigern die Bereitstellung des Antworthauptteils, wenn der HTTP-Status nicht 2xx lautet. Was ich im API-Design, in dem ich meine Clients nicht kontrollieren konnte, verwenden musste, bestand darin, immer 200 zurückzugeben und den Erfolg / Fehler / Status auf andere Weise anzugeben (z. B. als Top-Level-Attribut im JSON) Antwort).

    
Steven Xu 12.01.2012, 22:00
quelle
3

Ich versuche, json Antwort mit einem Status 400 zu bekommen, und es funktioniert auf IE7,8 und 9, Firefox und Chrome (Safari nicht getestet).

%Vor%     
Greg 10.10.2012 13:43
quelle
1

Ich hatte keine Probleme mit statusCode im Callback, aber statusCode als Callback-Funktion Gibt keine Daten zurück.

jQuery.Ajax

Ich denke, Sie sollten einen anderen Ansatz versuchen, wie Validierungsfehler auf der Serverseite behandelt werden, um den Statuscode 200 zurückzugeben, aber mit einem Parameter wie "error_count" und gehen Sie von dort aus.

kannst du etwas von dem Code posten, den du benutzt (nur $ .ajax, das du benutzt ...)?

    
Roni 12.01.2012 22:08
quelle
0

Für mich (Chrome) enthält die Eigenschaft responseText der xhr-Antwort nur "SCHLECHTE ANFORDERUNG", wenn statusCode 400 ist. Danke Steven für Ihre Antwort. Ich hatte damit zu kämpfen, da ich in Postman die JSON-Daten bekommen konnte, die ich von meinem REST-Controller zurückgab, aber ich konnte sie nicht auf der jQuery Ajax-Antwort finden.

    
VictorEspina 20.09.2016 21:22
quelle

Tags und Links