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

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

¿Qué es el Error CORS en Node.js?

El error de Intercambio de Recursos de Origen Cruzado (CORS, por sus siglas en inglés) es una medida de seguridad implementada por los navegadores web que restringe las solicitudes HTTP realizadas desde un dominio (origen) diferente al que sirve la API. Cuando desarrollas una aplicación backend con Node.js y Express, es muy común encontrarse con este bloqueo al intentar conectar un frontend en React, Vue o Angular que corre en un puerto distinto.

Causas Principales del Error CORS

Este problema se manifiesta generalmente en la consola del navegador con mensajes como Access to XMLHttpRequest at 'http://localhost:5000/api' from origin 'http://localhost:3000' has been blocked by CORS policy. Las causas principales son:

  • El servidor backend no incluye las cabeceras HTTP necesarias para autorizar el origen de la petición.
  • Se intenta acceder desde un dominio, protocolo o puerto no autorizado explícitamente.
  • Las peticiones con métodos personalizados o credenciales (como cookies o tokens de autorización) no están permitidas por defecto.

Método 1: Instalar y Configurar el Paquete CORS en Express

La forma más rápida, limpia y recomendada de solucionar este error en una aplicación Node.js con Express es utilizando el middleware oficial cors.

  1. Abre tu terminal en la raíz del proyecto backend.
  2. Instala el paquete ejecutando el siguiente comando: npm install cors
  3. Abre tu archivo principal del servidor (por ejemplo, app.js o server.js).
  4. Importa el módulo y utilízalo antes de definir tus rutas con el siguiente código:

const express = require('express'); const cors = require('cors'); const app = express(); // Habilitar CORS para todas las peticiones app.use(cors()); app.get('/api/data', (req, res) => { res.json({ message: '¡CORS configurado con éxito!' }); }); app.listen(5000, () => console.log('Servidor corriendo en puerto 5000'));

Método 2: Configurar CORS para Orígenes Específicos (Producción)

Habilitar CORS para cualquier origen (*) puede representar un riesgo de seguridad en entornos de producción. Lo ideal es restringir el acceso únicamente a los dominios confiables.

  1. Modifica la configuración del middleware cors pasando un objeto de opciones con la propiedad origin.
  2. Define una lista blanca de dominios permitidos tal como se muestra en el siguiente ejemplo:

const whitelist = ['https://tudominio.com', 'http://localhost:3000']; const corsOptions = { origin: function (origin, callback) { if (whitelist.indexOf(origin) !== -1 || !origin) { callback(null, true); } else { callback(new Error('Bloqueado por la política CORS')); } } }; app.use(cors(corsOptions));

Conclusión

Solucionar el error CORS en Node.js es fundamental para permitir la comunicación fluida entre tu API y tus clientes web. Utilizando el middleware oficial y aplicando restricciones basadas en listas blancas para producción, garantizarás una arquitectura robusta y segura.

Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Linux

Cómo Solucionar el Error de /etc/resolv.conf Sobreescrito en Linux de Forma Definitiva

¿Tus cambios en el servidor DNS de Linux desaparecen al reiniciar el sistema? Aprende a evitar que systemd-resolved sobrescriba tu archivo resolv.conf.

Leer guía completa →
Desarrollo

Cómo Solucionar el Error de Sintaxis SQL (SQL Syntax Error) en MySQL de Forma Definitiva

Descubre por qué ocurre el error de sintaxis SQL en tus consultas MySQL y cómo solucionarlo rápidamente con métodos probados. Mejora el rendimiento de tu backend.

Leer guía completa →
PrestaShop

Cómo Solucionar el Error 500 en PrestaShop de Forma Definitiva

El error 500 en PrestaShop es uno de los fallos más frustrantes para los dueños de tiendas online. Descubre cómo activando el modo debug y aplicando métodos sencillos puedes solucionarlo hoy mismo.

Leer guía completa →