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 error aparece cuando Cloudflare (u otro proxy inverso de seguridad) bloquea la solicitud del cliente porque detecta que JavaScript está deshabilitado o no se ha completado el desafío de verificación (como un browser integrity check). No es un error de tu código front-end, sino un mecanismo de seguridad activo.


🔍 Causa técnica

Cloudflare (o similar, como AWS WAF + Bot Management) inyecta un desafío JavaScript en la respuesta inicial. Si el navegador no ejecuta ese script (porque JS está deshabilitado, bloqueado por adblockers, o el entorno no es un navegador real), el servidor responde con este mensaje y niega el acceso.

Casos comunes donde ocurre:

  • Pruebas automatizadas con curl, requests de Python, o herramientas headless sin emular JS.
  • Navegadores con JavaScript deshabilitado o bloqueado.
  • Uso de extensiones que bloquean scripts (uBlock Origin, NoScript).
  • Configuración incorrecta de User-Agent o cabeceras HTTP que activan reglas de bloqueo.

✅ Solución definitiva (por escenario)

🧪 1. Si estás haciendo pruebas automatizadas (Python, Node.js, etc.)

No uses requests o curl directamente. Necesitas un motor de navegador real que ejecute JS.

✅ Opción recomendada: Playwright (soporta bypass de Cloudflare)

pip install playwright
playwright install chromium
Enter fullscreen mode Exit fullscreen mode
# Ejemplo en Python con Playwright
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()
    page.goto("https://tu-sitio.com")
    # Espera a que se resuelva el desafío (Cloudflare lo maneja automáticamente si el navegador es real)
    page.wait_for_load_state("networkidle")
    print(page.title())  # Ya estás dentro
    browser.close()
Enter fullscreen mode Exit fullscreen mode

⚠️ Importante: Usa headless=False en pruebas iniciales para verificar. En producción, puedes usar headless=True con args=["--disable-blink-features=AutomationControlled"].

❌ Evita: requests + cloudscraper (inestable y fácilmente detectado)

# NO RECOMENDADO: cloudscraper es frágil y se rompe con actualizaciones de Cloudflare
import cloudscraper
scraper = cloudscraper.create_scraper()
print(scraper.get("https://tu-sitio.com").text)  # Puede fallar en segundos
Enter fullscreen mode Exit fullscreen mode

🌐 2. Si eres usuario final (no desarrollador)

  • 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.
  • Desactiva temporalmente bloqueadores de anuncios (uBlock, AdGuard).
  • Limpia cookies y caché → vuelve a cargar la página.
  • Usa un navegador actualizado (Chrome/Firefox/Edge última versión estable).

🛠️ 3. Si eres administrador del sitio (configuración Cloudflare)

Si el desafío es innecesario para tu tráfico legítimo:

Opción A: Ajustar nivel de protección de bots

  1. En Cloudflare Dashboard → Security → Bot Management.
  2. Cambia Bot Fight Mode a Off.
  3. En Challenge Passage, añade reglas para excluir IPs o rutas confiables.

Opción B: Deshabilitar temporalmente el modo "Under Attack"

  • Dashboard → Security → WAF → Cambia el modo de Under Attack a Essential o Low.

⚠️ Nunca deshabilites completamente Cloudflare si tu sitio es público. Usa excepciones selectivas.


💡 Pro-tip: Detecta si Cloudflare está bloqueando tu petición

Agrega esta cabecera en tus peticiones para ver el ray ID:

curl -v https://tu-sitio.com 2>&1 | grep -i "cf-ray"
Enter fullscreen mode Exit fullscreen mode

Si aparece cf-ray, Cloudflare está interviniendo. Si la respuesta es <div class="h2">...Enable JavaScript...</div>, el desafío no se completó.


Resultado esperado: Al usar un navegador real (Playwright/Selenium con Chrome) o ajustar configuraciones de seguridad, el error desaparece y la página carga correctamente.

Top comments (0)