Cómo Solucionar el Error CORS en JavaScript y Node.js Paso a Paso

Cómo Solucionar el Error CORS en JavaScript y Node.js Paso a Paso
Anuncio relacionado

Introducción al Error CORS

Uno de los dolores de cabeza más comunes para los desarrolladores web full-stack es encontrarse con el bloqueo de la política CORS (Cross-Origin Resource Sharing) en la consola del navegador. Este mecanismo de seguridad de los navegadores web impide que una aplicación web que se ejecuta en un origen (dominio, protocolo o puerto) realice solicitudes a un servidor situado en un origen diferente, a menos que el servidor explícitamente lo permita mediante cabeceras HTTP específicas.

Causas Principales del Error CORS

El error CORS ocurre principalmente debido a las políticas de seguridad del mismo origen implementadas en los navegadores modernos. Las causas más frecuentes incluyen:

  • Intentar conectar un frontend alojado en http://localhost:3000 con una API en http://localhost:5000 sin habilitar los permisos necesarios.
  • Falta de las cabeceras HTTP correctas como Access-Control-Allow-Origin en la respuesta del servidor.
  • Realizar peticiones con credenciales (como cookies o tokens de autorización) sin la configuración adecuada en el cliente y el servidor.

Método 1: Solucionar CORS en una Aplicación Node.js usando Express

Si estás desarrollando una API backend utilizando Node.js y Express, la forma más sencilla y recomendada de solucionar este problema es utilizando el paquete oficial cors.

  1. Instala el paquete en tu proyecto ejecutando el siguiente comando en tu terminal:
    npm install cors
  2. Importa y configura el middleware en tu archivo principal de servidor (por ejemplo, app.js o server.js):
    const express = require('express');
    const cors = require('cors');
    const app = express();
    app.use(cors());
  3. Si deseas restringir el acceso únicamente a tu dominio de producción, puedes configurar el origen específico de la siguiente manera:
    const corsOptions = { origin: 'https://tu-sitio-web.com' };
    app.use(cors(corsOptions));
  4. Reinicia tu servidor backend y verifica que las peticiones desde el frontend funcionen correctamente.

Método 2: Configurar Cabeceras HTTP Manualmente sin Librerías

Si no deseas instalar librerías de terceros en tu servidor Node.js u otro entorno de backend, puedes agregar manualmente los encabezados HTTP necesarios en cada respuesta que envíe tu servidor.

    Añade el siguiente middleware personalizado antes de tus rutas principales:
  1. app.use((req, res, next) => {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
    res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
    next();
    });
  2. Asegúrate de manejar correctamente las peticiones pre-vuelo (método OPTIONS) que envían los navegadores antes de realizar solicitudes complejas como POST o PUT.
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Apps

Cómo Solucionar el Error Out of Memory en Adobe Photoshop de Forma Definitiva

¿Adobe Photoshop se cierra inesperadamente mostrando un error de memoria? Aprende a configurar la caché y el almacenamiento temporal para solucionarlo.

Leer guía completa →
WordPress

Cómo Solucionar la Pantalla Blanca de la Muerte (WSoD) en WordPress Paso a Paso

La Pantalla Blanca de la Muerte en WordPress es uno de los errores más aterradores para los administradores web. Aprende a identificar sus causas y soluciónala en pocos minutos.

Leer guía completa →
Juegos

Cómo Solucionar el Error de Conexión en Multijugador de Steam Paso a Paso

Aprende a resolver los molestos problemas de conexión multijugador en Steam. Sigue nuestros pasos y vuelve a jugar con tus amigos.

Leer guía completa →