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
Hardware

Cómo Solucionar el Error Código 43 en la Tarjeta Gráfica Definitivamente

¿Tu tarjeta gráfica muestra un error de código 43 en el Administrador de dispositivos? Aprende las causas y métodos definitivos para solucionarlo hoy mismo.

Leer guía completa →
PrestaShop

Cómo Solucionar el Error 503 Backend Limit en PrestaShop Paso a Paso

El error 503 Backend Limit es común en tiendas PrestaShop con alto tráfico o al realizar tareas pesadas. Aprende a solucionarlo definitivamente con esta guía.

Leer guía completa →
Juegos

Cómo Solucionar el Error DirectX 'Fatal Application Exit' en Juegos de PC

¿Tu juego se cierra inesperadamente mostrando un error de DirectX? Descubre cómo solucionar este fallo técnico aplicando métodos sencillos y definitivos.

Leer guía completa →