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