Quería incluir información de error en mi aplicación, pero tengo problemas para analizar la respuesta. Estoy enviando una solicitud POST usando axios a un servidor remoto para transferir un archivo como este.
//http is an axios instance const response = await http.post(url, formData, { headers: { 'content-type': 'multipart/form-data', }, }); if (response) { return { errors: false }; } else { return { errors: true, errorMessages: ['There was an error uploading the file'], //i want to extract errors array from response actually }; }Puedo cargar mi archivo sin problemas y el backend parece estar validando todo como se esperaba. Entonces, cuando trato de forzar errores al enviar archivos no válidos, veo que regresa una respuesta del backend en la pestaña de red de devtools que se ve así:
{"hasErrors":true,"data":false,"errors":["file extension validation: File must use .xlsx extension."]} Pero en mi frente no puedo acceder a ninguno de esos campos en mi variable de response . El servidor está respondiendo con el código 400.
Agradezco cualquier ayuda, ya que estoy un poco perdido tratando de registrar esto y no quiero mostrar solo un mensaje de error genérico cuando el servidor realmente proporciona esta información.
El problema aquí es que axios no resuelve las llamadas post con respuestas de estado 400; arroja un error que puede detectar.
try { const response = await http.post(/* your config */); return {errors: false}; } catch (e) { const {response} = e; return {errors: true}; }