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

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

¿Qué es el error CORS y por qué ocurre en el desarrollo web?

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 sistema restringe las solicitudes HTTP que se realizan desde un script en ejecución en un dominio (origen) hacia un servidor ubicado en un dominio, protocolo o puerto diferente. Cuando intentas consumir una API externa o propia sin los encabezados adecuados, el navegador bloquea la respuesta y muestra el temido mensaje en la consola.

Causas principales del bloqueo CORS

Las causas más comunes por las que aparece esta excepción en el entorno de desarrollo incluyen:

  • Realizar peticiones AJAX (usando fetch() o axios) desde un servidor local (ej. http://localhost:3000) a una API en otro puerto o dominio sin autorización.
  • Falta de los encabezados HTTP específicos de CORS en el servidor backend.
  • Configuración incorrecta de credenciales o métodos permitidos (GET, POST, PUT, DELETE).

Método 1: Solucionar CORS en el servidor backend (Node.js con Express)

La forma más profesional y recomendada de solucionar CORS es configurando el servidor para que permita solicitudes desde tu origen de desarrollo. Si utilizas Node.js con Express, puedes implementar el middleware oficial.

  1. Instala el paquete cors ejecutando el siguiente comando en tu terminal: npm install cors
  2. Abre el archivo principal de tu servidor (por ejemplo, server.js o app.js).
  3. Importa y añade 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 un Proxy en el Frontend (Entorno de Desarrollo React/Vue)

Si no tienes acceso al código del servidor backend y estás trabajando con herramientas modernas de frontend como React (Create React App) o Vue CLI, puedes configurar un proxy de desarrollo para engañar al navegador.

  1. Si usas React, abre tu archivo package.json.
  2. Agrega la propiedad proxy apuntando a la URL de tu API backend: "proxy": "http://localhost:5000"
  3. Modifica tus peticiones en JavaScript para que apunten a la ruta relativa en lugar de la URL absoluta: fetch('/api/data') en lugar de fetch('http://localhost:5000/api/data').
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Mac

Cómo Solucionar el Error -36 en Mac al Copiar Archivos de Forma Definitiva

El código de error -36 en macOS interrumpe la transferencia de archivos hacia discos externos. Descubre cómo solucionarlo de forma definitiva usando la terminal y otras herramientas integradas.

Leer guía completa →
Windows

Cómo Solucionar el Error Critical Structure Corruption en Windows 10 y 11 Paso a Paso

¿Tu PC muestra una pantalla azul con el código Critical Structure Corruption? Aprende a identificar la causa y aplica nuestros métodos de reparación infalibles.

Leer guía completa →
Magento

Cómo Solucionar el Error de Dependencia DI (Compilación) en Magento 2 de Forma Definitiva

Aprende a resolver los fallos en la inyección de dependencias durante la compilación en Magento 2. Guía técnica avanzada y definitiva.

Leer guía completa →