[RUBY] [JavaScript] Axios (ajax) ne peut pas obtenir le corps de la réponse au moment d'une erreur

introduction

C'était un angle mort, alors prenez note. Lorsque j'ai posté sur l'API Rails de l'avant et que j'ai eu une erreur, je voulais mettre un message détaillé dans le corps de la réponse et le renvoyer.

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)
   })

résultat

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)

Je ne peux pas obtenir le corps de la réponse de l'erreur ...


approche

Je me demandais si je ne pouvais pas renvoyer l'erreur de rails, mais le problème était la réception. Vous pouvez accéder à la réponse d'erreur comme suit

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

Quand il est 200, il renvoie un objet, mais ...

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

Sommaire

J'avais tourné ma lance vers l'arrière parce que je n'étais pas bon, mais la capacité avant n'était toujours pas bonne. .. .. Quand j'ai heurté le mur, j'ai senti une fois de plus que je devais abandonner les règles et rechercher soigneusement la cause une par une.

Recommended Posts

[JavaScript] Axios (ajax) ne peut pas obtenir le corps de la réponse au moment d'une erreur
Je ne peux pas sortir de l'écran de la console Rails db
Comportement de Files.copy (pathA, pathB) au moment de l'erreur
[Rails] Obtenez access_token au moment de l'authentification Twitter avec Sorcery et enregistrez-le dans la base de données
[Rails] About Uglifier :: Erreur: jeton inattendu: au moment du déploiement
Au moment de la nouvelle inscription, fonction d'envoi de courrier avec Action Mailer
J'étais coincé avec la gestion des fuseaux horaires lors du formatage avec SimpleDateFormat
Après avoir renouvelé le certificat avec CircleCI × fastlane, j'obtiens un état de sortie: erreur 65.
[JavaScript] Je souhaite limiter le traitement en vérifiant les éléments d'entrée lorsque le temps spécifié s'écoule lors de la mise au point.
Obtenez la partie Body de HttpResponse avec Spring Filter
J'ai vérifié le nombre de taxis avec Ruby
Au moment de l'événement dialogReturn, j'ai vérifié car il n'est pas mis à jour même si je spécifie un composant avec mise à jour
J'obtiens Mysql2 :: Error :: ConnectionError dans l'environnement de production
Comparaison de vitesse au moment de la génération au moment de la conversion de la date
J'ai résumé le format d'affichage de la réponse JSON de Rails
[Rails] Que faire si vous ne pouvez pas obtenir de message d'erreur avec la méthode des erreurs
Que ce soit pour faire du côté serveur au moment de la reconstruction du système avec Kotlin ou Java