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
Shopify

Cómo Solucionar el Error de Checkout Pendiente en Shopify de Forma Definitiva

Descubre las causas principales del error de checkout pendiente en tu tienda Shopify y aplica nuestros métodos probados para solucionarlo rápidamente.

Leer guía completa →
Desarrollo

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

Descubre por qué ocurre el error de políticas de origen cruzado en tus desarrollos web y cómo solucionarlo fácilmente configurando cabeceras y middleware.

Leer guía completa →
Magento

Cómo Solucionar el Error 503 Service Unavailable en Magento 2 de Forma Definitiva

El error 503 Service Unavailable puede hacer que tu tienda Magento 2 deje de estar disponible para tus clientes. Descubre las causas principales y cómo solucionarlo rápidamente.

Leer guía completa →