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
Apps

Cómo Solucionar el Error de Pantalla Negra en OBS Studio Definitivamente

¿La pantalla negra en OBS Studio no te permite transmitir o grabar? Descubre las causas principales y aplica nuestros métodos de solución definitivos.

Leer guía completa →
WordPress

Cómo Solucionar la Pantalla Blanca de la Muerte en WordPress de Forma Definitiva

La Pantalla Blanca de la Muerte bloquea tu sitio web y panel de administración sin mostrar mensajes de error. Descubre cómo solucionarlo fácilmente.

Leer guía completa →
Windows

Cómo solucionar el Error 0x800f081f en Windows 10 y 11

El error 0x800f081f es un fallo común al intentar instalar .NET Framework 3.5 o realizar actualizaciones. Te mostramos los métodos definitivos para solucionarlo.

Leer guía completa →