Cómo Solucionar el Error CORS (Cross-Origin Resource Sharing) Definitivamente

Cómo Solucionar el Error CORS (Cross-Origin Resource Sharing) Definitivamente
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 modernos. Su objetivo es restringir las solicitudes HTTP realizadas desde scripts hacia un dominio diferente al que sirvió la página original, previniendo ataques de tipo CSRF y robos de datos.

Cuando intentas consumir una API desde tu aplicación frontend alojada en http://localhost:3000 hacia un servidor backend en http://api.misitio.com sin los permisos adecuados, el navegador bloquea la respuesta y muestra el temido mensaje en la consola: 'Access to fetch at '...' from origin '...' has been blocked by CORS policy'.

Causas Principales del Error CORS

  • Falta de cabeceras HTTP de control de acceso en el servidor backend.
  • Intento de realizar peticiones con credenciales (cookies o tokens de autenticación) sin la configuración adecuada.
  • Uso incorrecto de métodos HTTP (como PUT o DELETE) que activan solicitudes de comprobación previa (preflight requests con OPTIONS).
  • Configuración errónea de los proxies de desarrollo en frameworks como React, Vue o Angular.

Método 1: Configurar las Cabeceras CORS en el Servidor Backend (Node.js / Express)

La forma más robusta de solucionar CORS es permitir explícitamente los orígenes confiables desde el servidor que procesa las peticiones. Si utilizas Node.js con Express, puedes instalar el paquete oficial cors.

  1. Instala el paquete ejecutando npm install cors en la terminal de tu proyecto backend.
  2. Importa y habilita el middleware en tu archivo principal (por ejemplo, server.js).
  3. Configura los dominios permitidos para mayor seguridad en producción.

Ejemplo de código:

const express = require('express'); const cors = require('cors'); const app = express(); const corsOptions = { origin: 'http://localhost:3000', optionsSuccessStatus: 200 }; app.use(cors(corsOptions)); app.get('/api/data', (req, res) => { res.json({ message: '¡CORS configurado con éxito!' }); }); app.listen(5000);

Método 2: Configurar un Proxy en el Entorno de Desarrollo Frontend

Si no tienes acceso para modificar el código del servidor backend y solo estás desarrollando el frontend, puedes utilizar un proxy de desarrollo para engañar al navegador haciendo creer que las peticiones se realizan al mismo origen.

  1. Si usas React (Create React App), abre tu archivo package.json.
  2. Agrega la propiedad proxy apuntando al servidor backend: "proxy": "http://localhost:5000".
  3. Si usas Vite, configura el archivo vite.config.js dentro de la sección server.proxy.

Ejemplo de configuración en Vite:

export default defineConfig({ server: { proxy: { '/api': { target: 'http://localhost:5000', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') } } } });
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Juegos

Cómo Solucionar el Error Fatal de DirectX en Juegos de PC de Forma Definitiva

Aprende a corregir el error fatal de DirectX que cierra tus videojuegos inesperadamente. Métodos efectivos y sencillos para solucionarlo hoy mismo.

Leer guía completa →
Windows

Cómo Solucionar el Error Critical Process Died en Windows 10 y 11 Definitivamente

El error Critical Process Died en Windows suele causar un molesto pantallazo azul y reinicios inesperados. Descubre cómo identificar la causa y solucionarlo eficazmente.

Leer guía completa →
Magento

Cómo Solucionar el Error 'Exception local.xml file is not exists' en Magento de Forma Definitiva

Aprende a resolver el error donde Magento no encuentra el archivo local.xml de configuración. Guía técnica paso a paso para restaurar tu sitio.

Leer guía completa →