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)
})
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 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: {…}, …}
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