Estoy enviando una solicitud de publicación a mi desde mi local a otro dominio. (Estoy usando Chrome en modo desarrollador para evitar el problema de Cors)
Este es mi código:
axios('https://..../signup', {
method: 'POST',
data: {
email: '[email protected]',
password: 'fdsfds',
confirmPassword: 'fdsfds'
}
}).then(function(response) {
console.log('response::', response.data);
})
.catch(function(error) {
console.log('ERROR::', error.data);
});
El problema es que solo obtengo el estado 400 (Bad Request)
como respuesta, mientras que si enviara la misma solicitud a través de curl cli/postman obtendría el estado más un cuerpo como:
[
{
"param": "email",
"msg": "Email is not valid"
},
{
"param": "password",
"msg": "Password must be at least 4 characters long"
},
{
"param": "confirmPassword",
"msg": "Passwords do not match"
}
]
Pero no con axios. Esto no puede ser un problema de Cors, porque puedo hacer que las consultas de obtención/publicación estén bien, simplemente parece que no puedo obtener el cuerpo que se devuelve con el estado.
No importa console.log('ERROR::', error.response.data);
hizo el trabajo, espero que esto se documente claramente.
@samayo Gracias por responder esto. Me estaba volviendo loco, usar la solicitud XHR simple funcionó bien en cuanto a obtener respuestas de error, pero cuando usaba axios, me preguntaba por qué no podía recuperar las respuestas por error, lo cual respondiste perfectamente. De acuerdo, debería ser más fácil encontrarlo en la documentación.
Cuando envío una solicitud de publicación usando la sintaxis de espera asincrónica si el estado de res es 200, devuelve el cuerpo de respuesta, pero cuando el estado de respuesta es 400, no envía el cuerpo de respuesta. ¿Cómo obtener un error al usar la sintaxis de espera asíncrona?
Comentario más útil
No importa
console.log('ERROR::', error.response.data);
hizo el trabajo, espero que esto se documente claramente.