Programación con JavaScript: Peticiones a un servidor

El método fetch de JavaScript nos proporciona la funcionalidad necesaria para comunicarnos con servidores web directamente desde el navegador. Nos permite realizar todo tipo de peticiones HTTP (como obtener datos, enviar formularios, actualizar o eliminar información) de manera sencilla y eficiente.

Introducción

Lo que hace especial a fetch es su capacidad para trabajar con promesas, lo que permite manejar respuestas asíncronas del servidor de una manera más limpia y organizada. En esencia, fetch te permite solicitar recursos o enviar datos a un servidor y luego, una vez que la petición es procesada, trabajar con la respuesta, ya sea extrayendo su contenido en diferentes formatos (como texto o JSON) o manejando posibles errores que ocurran durante el proceso. Esta funcionalidad es crucial para el desarrollo de aplicaciones web modernas, donde la interacción constante con APIs y servicios externos es una práctica común para mostrar datos dinámicos, realizar actualizaciones en tiempo real y mejorar la experiencia del usuario en la web.

Para usar la función fetch en JavaScript y hacer peticiones a un servidor, primero necesitas entender qué es y cómo funciona. La función fetch nos permite realizar peticiones HTTP (como GET, POST, PUT, y DELETE) a un servidor desde un navegador web. Esta función devuelve una promesa que se resuelve con el objeto de respuesta del servidor, permitiéndote luego manipular esta respuesta, ya sea extrayendo el cuerpo de la misma en el formato deseado (como texto, JSON, etc.) o manejando errores.

Realizar una petición básica con fetch

Para hacer una petición GET simple, puedes utilizar fetch con la URL del recurso que deseas obtener.

fetch('https://api.example.com/data')
  .then(response => response.json()) // Convierte la respuesta a JSON
  .then(data => console.log(data)) // Maneja los datos de la respuesta
  .catch(error => console.error('Hubo un error:', error)); // Maneja los errores

En este caso, fetch('https://api.example.com/data') realiza una petición GET a la URL proporcionada. La función .then(response => response.json()) recoge la respuesta HTTP y la convierte a JSON. Luego, otro .then recibe esos datos ya procesados y, por ejemplo, los imprime en la consola. Finalmente, .catch captura cualquier error que pueda ocurrir durante la petición o procesamiento de la respuesta.

Enviar una petición con método POST

Para enviar datos a un servidor, como un formulario o información en formato JSON, puedes utilizar el método POST.

fetch('https://api.example.com/submit', {
  method: 'POST', // Método HTTP
  headers: {
    'Content-Type': 'application/json', // Indica el tipo de contenido que se está enviando
  },
  body: JSON.stringify({
    name: 'Usuario',
    message: 'Hola, mundo'
  }) // Datos que se envían convertidos a cadena JSON
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Hubo un error:', error));

Aquí, el segundo argumento de fetch es un objeto que configura la petición, especificando el método HTTP (method: 'POST'), los encabezados (headers) para indicar el tipo de contenido que se está enviando, y el cuerpo de la petición (body), que contiene los datos enviados al servidor. Los datos deben ser una cadena JSON, por lo que se utiliza JSON.stringify para convertir un objeto JavaScript a esta cadena.

Control de errores y respuestas erróneas

Es importante manejar correctamente los errores y las respuestas que no indican éxito (como un estado 404 o 500). Puedes hacerlo verificando el estado de la respuesta.

fetch('https://api.example.com/data')
  .then(response => {
    if (!response.ok) {
      throw new Error('Network response was not ok');
    }
    return response.json();
  })
  .then(data => console.log(data))
  .catch(error => console.error('Hubo un problema con tu petición:', error));

En este ejemplo, if (!response.ok) verifica si el estado de la respuesta no indica éxito, lanzando un error si es necesario. Esto permite que el .catch posterior maneje tanto errores de red como respuestas no exitosas.

Conclusión

La función fetch es una herramienta poderosa y flexible para realizar peticiones HTTP en aplicaciones web modernas. Permite un control detallado sobre las peticiones y respuestas, facilitando el trabajo con APIs y servicios web. Practica con ejemplos y variaciones de estos para familiarizarte completamente con su funcionamiento y capacidades.

Publicaciones Similares

  • Programación con JavaScript: Cuadros de diálogo con SweetAlert

    SweetAlert es una popular librería de JavaScript que permite crear cuadros de diálogo más atractivos y funcionales que los cuadros de diálogo nativos de JavaScript (alert, confirm, prompt). Ofrece una amplia gama de opciones personalizables, como iconos, botones, animaciones, y más, lo que la convierte en una excelente opción para mejorar la interacción del usuario…

  • Juegos en red y minijuegos

    Multijugador UNO (hasta 4 jugadores) https://uno1.fernandoruizrico.com y https://uno2.fernandoruizrico.com UNO (hasta 8 jugadores) https://uno3.fernandoruizrico.com y https://uno4.fernandoruizrico.com DOWNHILL (esquí alpino, desciende por la colina) https://downhill1.fernandoruizrico.com GRAVITY (shooter, conquista civilizaciones en el espacio) https://gravity1.fernandoruizrico.com y https://gravity2.fernandoruizrico.com EL GRAN QUESO (shooter, destruye la luna) https://cheese1.fernandoruizrico.com y https://cheese2.fernandoruizrico.com BALONCESTO (encestar, ambiente espacial) https://basketball1.fernandoruizrico.com y https://basketball2.fernandoruizrico.com MAZMORRA (shooter, deathmatch, sólo 1…

  • Manual básico de Scikit-learn

    Introducción a Scikit-learn Scikit-learn es una de las librerías más populares utilizadas en Python para el aprendizaje automático (machine learning). Fue desarrollada como parte del ecosistema científico de Python y se ha convertido en una herramienta fundamental para investigadores, analistas de datos y desarrolladores que buscan aplicar algoritmos de aprendizaje automático a problemas del mundo…

  • Programando el juego Conecta 4 en Java paso a paso

    Introducción El desarrollo de videojuegos de consola es una de las herramientas pedagógicas más recomendadas para comprender la programación estructurada. En esta unidad, no nos limitaremos a «copiar y pegar» código; realizaremos una disección técnica completa de una implementación del clásico Conecta 4. Analizaremos el uso de enumerados (enums) para la seguridad de tipos, la…

  • Generación de vídeos con inteligencia artificial

    Vídeos a partir de imágenes Utilizando QWEN (https://chat.qwen.ai/) Su uso es gratuito para todos los servicios que ofrecen (generación de presentaciones, imágenes, vídeos, conversación compartiendo audio y vídeo en tiempo real, etc.). La aplicación de móvil no está disponible en España. Con voz en español El siguiente vídeo se ha generado utilizando estas instrucciones: Crea…

  • Inteligencia artificial

    ¿Cómo ponerte al día? Canales de YouTube recomendados Comparación de los canales recomendados: Canal Enfoque principal A destacar Jon Hernández Actualizaciones semanales de IA Frecuencia constante; enfoque claro y accesible Carlos Santana (Dot CSV) IA explicada en profundidad Equilibrio entre rigor técnico y divulgación clara Xavier Mitjana IA aplicada a creatividad y negocios Enfoque profesional,…