Skip to main content

Manejo de Respuestas HTTP

Cuando haces una petición con fetch(), recibes un objeto Response. Este objeto contiene información sobre la respuesta del servidor y métodos para procesar los datos.

El Objeto Response

Propiedades Importantes

Boolean que indica si la respuesta fue exitosa (status 200-299).
Es la forma más simple de verificar si hubo un error.
Código de estado HTTP numérico.
Mensaje de texto asociado al código de estado.
Objeto Headers con las cabeceras de respuesta.

Procesar el Cuerpo de la Respuesta

El cuerpo de la respuesta debe ser procesado con uno de estos métodos:

response.json()

Parsea el cuerpo como JSON. Retorna una Promise.
Si el cuerpo no es JSON válido, response.json() lanzará un error. Asegúrate de que el Content-Type sea application/json.

response.text()

Obtiene el cuerpo como texto plano:

response.blob()

Para archivos binarios (imágenes, PDFs, etc.):

response.arrayBuffer()

Para datos binarios en bruto:

response.formData()

Para datos de formulario:
Cada uno de estos métodos puede llamarse solo UNA vez. El cuerpo de la respuesta es un stream que se consume.

Verificar Códigos de Estado

Manejo Básico con response.ok

Manejo Específico por Código

Ejemplo Completo: Verificación de Respuesta

Manejar Errores de Red

Fetch rechaza la Promise solo en errores de red (sin conexión, DNS falla, etc.), NO en errores HTTP:
Por eso es crucial verificar response.ok - los errores HTTP no lanzan excepciones automáticamente.

Leer Headers de Respuesta

Timeout y Abortar Peticiones

Usando AbortController

Función Helper con Timeout

Respuestas con Diferentes Content-Types

Buenas Prácticas

1

Siempre verifica response.ok

2

Maneja errores apropiadamente

3

Verifica el Content-Type

4

Proporciona feedback al usuario

Próximos Pasos

localStorage

Guarda datos en el navegador permanentemente

Ejemplos de Fetch

Ve ejemplos completos de uso de Fetch