DEV Community

Erick Eduardo Ramos
Erick Eduardo Ramos

Posted on

Cómo solucionar el error “Enable JavaScript and cookies to continue”

Cómo solucionar el error “Enable JavaScript and cookies to continue”

Este mensaje aparece cuando Cloudflare (u otro proxy inverso de seguridad) bloquea la solicitud porque detecta que el navegador no cumple con los requisitos mínimos de seguridad: JavaScript deshabilitado o cookies deshabilitadas/aceptadas.

🔍 Causa raíz técnica

Cloudflare ejecuta un JavaScript challenge (también llamado browser integrity check) para verificar que el cliente es un navegador real y no un bot automatizado. Si:

  • JavaScript está deshabilitado en el navegador, o
  • Las cookies están bloqueadas (por configuración de privacidad, extensiones como uBlock Origin, o políticas estrictas de SameSite), o
  • La solicitud proviene de un entorno sin renderizado (p. ej., curl, requests de Python sin simulación de navegador), → el servidor responde con esta página de desafío.

En entornos de desarrollo o pruebas automatizadas, este error suele ocurrir porque:

  • Se usa un cliente HTTP puro (requests, axios, curl) sin habilitar cookies ni ejecutar JS.
  • Se omite el manejo de cookies entre redirecciones.
  • El entorno no permite ejecutar JS (como en tests headless mal configurados).

✅ Solución definitiva (según contexto)

🔧 Caso 1: Navegador humano (desarrollador o usuario final)

  1. Habilita JavaScript en tu navegador:
    • Chrome: Configuración → Privacidad y seguridad → Configuración del sitio → JavaScript → Permitido.
    • Firefox: Preferencias → Privacidad y seguridad → Permisos → Habilitar JavaScript.
  2. Habilita cookies:
    • Asegúrate de que No bloquear cookies esté activado.
    • Desactiva temporalmente extensiones como uBlock Origin, Privacy Badger o Ghostery (suelen bloquear cookies de terceros necesarias para el desafío).
  3. Reinicia el navegador y vuelve a cargar la página.

⚠️ Si usas modo incógnito, Cloudflare puede requerir cookies de sesión → cierra todas las ventanas y vuelve a abrir.


🤖 Caso 2: Automatización (Python requests, Node.js axios, etc.)

No puedes usar requests/axios puro para superar este desafío. Debes simular un navegador real.

✅ Solución recomendada: Usa Playwright o Puppeteer

Ejemplo con Playwright (Python):

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()

    # Navega a la URL (Cloudflare se resolverá automáticamente)
    page.goto("https://example.com")

    # Espera a que cargue (Cloudflare suele tardar <3s)
    page.wait_for_load_state("networkidle")

    # Ahora puedes extraer contenido o interactuar
    print(page.title())
    browser.close()
Enter fullscreen mode Exit fullscreen mode

❌ Lo que NO funciona (y por qué):

# ❌ Esto FALLA: no ejecuta JS, no maneja cookies de forma real
import requests
r = requests.get("https://example.com")  # Devuelve HTML con el mensaje de error
Enter fullscreen mode Exit fullscreen mode

💡 Cloudflare usa cookies como __cf_bm o __cflb para validar sesiones. Estas se generan dinámicamente tras ejecutar JS. Sin ejecutar JS, no hay cookie válida.


🛠️ Pro-tip: Diagnóstico rápido

  1. Abre la consola del navegador (F12 → pestaña Console).
  2. Si ves errores como Uncaught ReferenceError: Cloudflare is not defined, el desafío no se cargó correctamente (posible bloqueo por adblocker).
  3. En la pestaña Network, busca una petición a /cdn-cgi/challenge-platform/... → si falla con 403 o no aparece, el navegador no pasa el reto.

📌 Conclusión

Escenario Solución
Usuario final Habilitar JS + cookies + desactivar adblockers
Automatización Usar Playwright/Puppeteer (nunca requests puro)
Desarrollo local Asegurar que localhost no esté en modo strict third-party cookie blocking

No hay solución "HTTP-only" para este error: es un mecanismo de seguridad intencionalmente anti-bot. El único camino seguro es simular un navegador real.

Top comments (0)