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

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

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

El error CORS (Cross-Origin Resource Sharing o Intercambio de Recursos de Origen Cruzado) es un mecanismo de seguridad implementado por los navegadores web. Este bloquea las solicitudes HTTP realizadas desde un dominio (origen) diferente al que sirve la API backend. Si estás desarrollando una aplicación web donde tu frontend (por ejemplo, en React o Vue ejecutándose en localhost:3000) intenta comunicarse con tu API de Node.js y Express (ejecutándose en localhost:5000), el navegador bloqueará la respuesta si no configuras las cabeceras CORS adecuadas.

Causas principales del bloqueo por CORS

Las causas más comunes por las que aparece este error en la consola del navegador incluyen:

  • Falta de las cabeceras HTTP de respuesta Access-Control-Allow-Origin en el servidor.
  • Intentar realizar peticiones con métodos no permitidos (como PUT o DELETE) sin autorización previa.
  • Envío de credenciales (cookies o tokens de autenticación) sin la configuración adecuada de seguridad en el backend.

Método 1: Solucionar el error instalando y configurando el paquete CORS

La forma más limpia, recomendada y rápida de solucionar este problema en Express es utilizando el middleware oficial cors.

  1. Abre tu terminal en la carpeta raíz de tu proyecto Node.js.
  2. Instala el paquete ejecutando el siguiente comando:
    npm install cors
  3. Abre el archivo principal de tu servidor (por ejemplo, app.js o server.js).
  4. Importa e integra el middleware antes de definir tus rutas:
const express = require('express');
const cors = require('cors');
const app = express();

// Habilitar CORS para todas las rutas y orígenes
app.use(cors());

app.get('/api/data', (req, res) => {
  res.json({ message: '¡CORS solucionado con éxito!' });
app.listen(5000, () => {
  console.log('Servidor corriendo en el puerto 5000');

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

Permitir el acceso a cualquier origen (usando app.use(cors())) puede ser un riesgo de seguridad en entornos de producción. Es mejor configurar un dominio específico que tenga permiso para consumir tu API.

  1. Modifica la configuración del middleware especificando la opción origin:
const express = require('express');
const cors = require('cors');
const app = express();

const corsOptions = {
  origin: 'https://tu-dominio-frontend.com',
  optionsSuccessStatus: 200
};

app.use(cors(corsOptions));

app.get('/api/secure', (req, res) => {
  res.json({ message: 'Acceso seguro y permitido por CORS' });
app.listen(5000);
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Magento

Cómo Solucionar el Error de Indexación en Magento 2 de Forma Definitiva

Los problemas de indexación en Magento 2 pueden desactualizar los precios y stock de tu tienda. Descubre cómo solucionarlo de forma definitiva mediante la línea de comandos.

Leer guía completa →
Apps

Cómo Solucionar el Error ERR_CONNECTION_RESET en Google Chrome de Forma Definitiva

Aprende a resolver el molesto código de error ERR_CONNECTION_RESET en Google Chrome aplicando métodos efectivos de red y configuración. Vuelve a navegar sin interrupciones.

Leer guía completa →
Juegos

Cómo Solucionar el Error Steam Content File Locked Definitivamente

Descubre por qué ocurre el bloqueo de archivos de contenido en Steam y cómo solucionarlo rápidamente con métodos efectivos. Vuelve a jugar sin interrupciones.

Leer guía completa →