Cómo Solucionar el Error CORS (Cross-Origin Resource Sharing) en Node.js Paso a Paso

Cómo Solucionar el Error CORS (Cross-Origin Resource Sharing) en Node.js Paso a Paso
Anuncio relacionado

¿Qué es el error CORS y por qué ocurre en Node.js?

El error CORS (Cross-Origin Resource Sharing) es un mecanismo de seguridad implementado por los navegadores web que restringe las solicitudes HTTP realizadas desde un origen (dominio, protocolo o puerto) hacia un servidor ubicado en un origen diferente. Cuando desarrollas una API en Node.js (usando Express, por ejemplo) y tu frontend corre en otro puerto (como localhost:3000 llamando a localhost:5000), el navegador bloquea la respuesta por defecto si el servidor no incluye las cabeceras HTTP adecuadas.

Causas principales del bloqueo CORS

  • Falta del middleware cors en la aplicación de Express.
  • Ausencia de cabeceras específicas como Access-Control-Allow-Origin.
  • Peticiones con credenciales (cookies o tokens de autorización) no permitidas explícitamente.

Método 1: Instalar y configurar el paquete CORS en Express

La forma más rápida y recomendada de solucionar este problema en Node.js es utilizando el paquete oficial cors disponible en npm.

  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 de servidor (por lo general server.js o app.js).
  4. Importa e implementa el middleware antes de definir tus rutas:
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 solucionado con éxito!' }); }); app.listen(5000, () => console.log('Servidor corriendo en puerto 5000'));

Método 2: Configurar CORS de forma restrictiva para producción

Permitir acceso a cualquier origen (usando app.use(cors())) puede representar un riesgo de seguridad en entornos de producción. Es mejor limitar el acceso únicamente a tu dominio de frontend.

  1. Define un objeto de configuración con la propiedad origin apuntando a tu dominio autorizado.
  2. Pasa dicho objeto como parámetro al middleware cors():
const express = require('express'); const cors = require('cors'); const app = express(); const whitelist = ['https://tudominiofrontend.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));

Con estos métodos podrás eliminar por completo los bloqueos de origen cruzado y asegurar que tu API se comunique de manera fluida y segura con cualquier cliente autorizado.

Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Windows

Cómo Solucionar el Error Critical Process Died en Windows de Forma Definitiva

Descubre las causas principales del pantallazo azul Critical Process Died en Windows y sigue nuestros métodos efectivos para solucionarlo definitivamente.

Leer guía completa →
Hardware

Cómo Solucionar el Error 'WHEA_UNCORRECTABLE_ERROR' en Windows de Forma Definitiva

Aprende a diagnosticar y solucionar el temido error de hardware WHEA_UNCORRECTABLE_ERROR en Windows de manera definitiva.

Leer guía completa →
Linux

Cómo Solucionar el Error de Espacio en Disco por Inodos Llenos en Linux Paso a Paso

Descubre por qué tu sistema Linux rechaza nuevos archivos a pesar de tener espacio libre en disco. Aprende a diagnosticar y liberar inodos rápidamente.

Leer guía completa →