Cómo Solucionar el Error CORS (Cross-Origin Resource Sharing) en JavaScript de Forma Definitiva

Cómo Solucionar el Error CORS (Cross-Origin Resource Sharing) en JavaScript de Forma Definitiva
Anuncio relacionado

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

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 bloquea las peticiones HTTP realizadas desde un dominio (origen) hacia un servidor distinto, protegiendo así a los usuarios de ataques maliciosos como el robo de datos.

Sin embargo, cuando estás desarrollando una aplicación moderna que separa el frontend (por ejemplo, React o Vue) del backend (Node.js o PHP), este bloqueo se convierte en un obstáculo común. El mensaje típico en la consola es: Access to fetch at '...' from origin '...' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Causas principales del fallo de CORS

  • El servidor backend no incluye las cabeceras HTTP necesarias para autorizar el origen de la petición.
  • Estás intentando enviar credenciales (como cookies o tokens de autorización) sin la configuración adecuada en el cliente y el servidor.
  • El navegador envía una petición preliminar de tipo OPTIONS que el servidor rechaza o no sabe cómo gestionar.

Método 1: Configurar CORS en un servidor backend con Node.js y Express

La forma más rápida y recomendada de solucionar este problema en un entorno de Node.js es utilizando el paquete oficial cors.

  1. Instala el paquete en tu proyecto ejecutando el siguiente comando en tu terminal: npm install cors
  2. Abre el archivo principal de tu servidor (por ejemplo, app.js o server.js).
  3. Importa y habilita 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(3000, () => console.log('Servidor corriendo en puerto 3000'));

Método 2: Configurar cabeceras HTTP de forma manual en PHP

Si tu API está desarrollada en PHP puro, debes enviar las cabeceras HTTP correspondientes al inicio de tu script para permitir el acceso desde cualquier origen o desde uno específico.

  1. Abre el archivo PHP que recibe las peticiones (por ejemplo, api.php).
  2. Agrega las siguientes líneas de código en la parte superior, antes de cualquier salida de datos:
{"status":"success"}

Método 3: Utilizar un Proxy inverso durante el desarrollo local

Si no tienes acceso para modificar el código del servidor backend al que estás consultando, puedes configurar un proxy en tu herramienta de desarrollo (como Vite, Webpack o Vue CLI) para engañar al navegador.

  1. Si usas Vite, abre tu archivo vite.config.js.
  2. Modifica la configuración para redirigir las peticiones locales:
export default defineConfig({ server: { proxy: { '/api': { target: 'https://api.servidor-externo.com', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') } } } });
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Linux

Cómo Solucionar el Error No Space Left on Device en Linux de Forma Definitiva

Te quedaste sin espacio en tu servidor Linux aunque los archivos parecen pequeños? Descubre cómo solucionar el error No Space Left on Device paso a paso.

Leer guía completa →
Apps

Cómo Solucionar el Error de Bucle de Actualización en Telegram Desktop de Forma Definitiva

Telegram Desktop se queda atascado intentando actualizar sin abrir la app. Aprende a solucionarlo definitivamente con estos sencillos pasos.

Leer guía completa →
Hardware

Cómo Solucionar el Error Código 43 en el Administrador de Dispositivos de Forma Definitiva

El error Código 43 indica que Windows ha detenido un dispositivo de hardware por problemas de funcionamiento. Descubre cómo solucionarlo definitivamente con estos métodos.

Leer guía completa →