[RUBY] [JavaScript] Axios (Ajax) kann den Antworttext zum Zeitpunkt eines Fehlers nicht abrufen

Einführung

Es war ein blinder Fleck, machen Sie sich also eine Notiz. Ich wollte eine detaillierte Nachricht in den Antworttext einfügen und sie zurückgeben, wenn ich von vorne in die Rails-API gepostet habe und eine Fehlermeldung erhalten habe.

Ruby on Rails

if user.save
  render json: { status: 200, data: user }
else
  render  status: :unprocessable_entity, json:{ messages: user.errors.full_messages }
end

JavaScript

axios
  .post(process.env.API_URL + '/api/v1/users/signup')
  .then((res) => {
    console.log(res)
   })
  .catch((e) => {
    console.log(e)
   })

Ergebnis

Error: Request failed with status code 422
    at createError (createError.js?2d83:16)
    at settle (settle.js?467f:17)
    at XMLHttpRequest.handleLoad (xhr.js?b50d:69)

Ich kann den Antworttext des Fehlers nicht erhalten ...


Ansatz

Ich habe mich gefragt, ob ich den Rails-Fehler nicht zurückgeben kann, aber das Problem war die Rezeption. Sie können wie folgt auf die Fehlerantwort zugreifen

  .catch((e) => {
    console.log(e.response.data.messages)
   })

Wenn es 200 ist, gibt es ein Objekt zurück, aber ...

{data: {…}, status: 200, statusText: "OK", headers: {…}, config: {…}, …}

Zusammenfassung

Ich hatte meinen Speer zum hinteren Ende gedreht, weil ich nicht gut darin war, aber die Fähigkeit vorne war immer noch nicht gut. .. .. Als ich gegen die Wand stieß, hatte ich erneut das Gefühl, dass ich die Regeln aufgeben und nacheinander sorgfältig nach der Ursache suchen sollte.

Recommended Posts

[JavaScript] Axios (Ajax) kann den Antworttext zum Zeitpunkt eines Fehlers nicht abrufen
Ich kann den Bildschirm der Rails-Datenbankkonsole nicht verlassen
Verhalten von Files.copy (pathA, pathB) zum Zeitpunkt des Fehlers
[Rails] Erhalten Sie access_token zum Zeitpunkt der Twitter-Authentifizierung mit Sorcery und speichern Sie es in der Datenbank
[Rails] Über Uglifier :: Fehler: Unerwartetes Token: Zum Zeitpunkt der Bereitstellung
Zum Zeitpunkt der Neuregistrierung E-Mail-Sendefunktion mit Action Mailer
Beim Formatieren mit SimpleDateFormat blieb ich beim Umgang mit Zeitzonen
Nach dem Erneuern des Zertifikats mit CircleCI × fastlane erhalte ich den Fehler Exit status: 65.
[JavaScript] Ich möchte die Verarbeitung einschränken, indem ich Eingabeelemente überprüfe, wenn die angegebene Zeit zum Zeitpunkt des Fokusausgangs abgelaufen ist.
Holen Sie sich den Body-Teil von HttpResponse mit Spring Filter
Ich habe die Anzahl der Taxis mit Ruby überprüft
Zum Zeitpunkt des dialogReturn-Ereignisses habe ich überprüft, ob es nicht aktualisiert wird, auch wenn ich eine Komponente mit Aktualisierung angegeben habe
Ich erhalte Mysql2 :: Error :: ConnectionError in der Produktionsumgebung
Geschwindigkeitsvergleich zum Zeitpunkt der Generierung zum Zeitpunkt der Datumskonvertierung
Ich habe das Anzeigeformat der JSON-Antwort von Rails zusammengefasst
[Schienen] Was tun, wenn mit der Fehlermethode keine Fehlermeldung angezeigt wird?
Gibt an, ob die Serverseite zum Zeitpunkt der Systemwiederherstellung mit Kotlin oder Java erstellt werden soll