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.
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).
Ich hatte keine Probleme mit statusCode im Callback, aber statusCode als Callback-Funktion Gibt keine Daten zurück.
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 ...)?
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.
Tags und Links javascript jquery