Esto puede parecer estúpido, pero estoy tratando de obtener los datos de error cuando falla una solicitud en Axios.
axios.get('foo.com')
.then((response) => {})
.catch((error) => {
console.log(error) //Logs a string: Error: Request failed with status code 404
})
En lugar de la cadena, ¿es posible obtener un objeto con quizás el código de estado y el contenido? Por ejemplo:
Object = {status: 404, reason: 'Not found', body: '404 Not found'}
javascript
axios
Sebastian Olsen
fuente
fuente

responsepropiedad?console.logutiliza eltoStringmétodo para formatearErrorobjetos. No tiene nada que ver con referirse a laresponsepropiedad.console.logmanejaErrorobjetos como un caso especial. No puedo decir cómo se implementa exactamente en los navegadores, pero si llamaconsole.log({ foo: 'bar' });yconsole.log(new Error('foo'));en la Consola de Chrome DevTools, verá que los resultados se ven diferentes.Como dijo @Nick, los resultados que ve cuando
console.logunErrorobjeto JavaScript depende de la implementación exacta deconsole.log, que varía y (imo) hace que la comprobación de errores sea increíblemente molesta.Si desea ver el
Errorobjeto completo y toda la información que lleva sin pasar por eltoString()método, puede usar JSON.stringify :fuente
Estoy usando estos interceptores para obtener la respuesta de error.
fuente
Con TypeScript, es fácil encontrar lo que desea con el tipo correcto.
fuente
Puede usar el operador de propagación (
...) para forzarlo a un nuevo objeto como este:Tenga en cuenta: esto no será una instancia de error.
fuente
Este es un error conocido, intente usar
"axios": "0.13.1"https://github.com/mzabriskie/axios/issues/378
Tuve el mismo problema, así que terminé usando
"axios": "0.12.0". Funciona bien para mí.fuente
errorHay una nueva opción llamada
validateStatusen la configuración de solicitud. Puede usarlo para especificar no lanzar excepciones si el estado <100 o el estado> 300 (comportamiento predeterminado). Ejemplo:fuente
Puede poner el error en un objeto y registrar el objeto, así:
Espero que esto ayude a alguien por ahí.
fuente
Para que el servidor devuelva el código de estado http, puede agregar
validateStatus: status => truea las opciones de axios:De esta manera, cada respuesta http resuelve la promesa devuelta por axios.
https://github.com/axios/axios#handling-errors
fuente
Es mi código: trabaja para mí
fuente