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"

¿Por qué ocurre este error?

Este mensaje aparece cuando Cloudflare (o un proxy similar como Turnstile, Akamai, o un WAF personalizado) bloquea la solicitud porque:

  • El navegador no ejecuta JavaScript (o está deshabilitado).
  • Las cookies no están habilitadas o no se están enviando.
  • El cliente (navegador o scraper) no completa el challenge de seguridad (como un CAPTCHA o verificación de navegador).

En entornos automatizados (scraping, scripts, bots), esto suele suceder porque:

  • Se usa una herramienta sin motor JS (p. ej., requests, curl, axios sin renderizado).
  • No se persisten ni envían cookies entre solicitudes.
  • El User-Agent o headers no simulan un navegador real.

Solución definitiva (pasos)

✅ Caso 1: Uso normal en navegador (usuario final)

  1. Habilita JavaScript en tu navegador:
    • Chrome: Configuración > Privacidad y seguridad > Seguridad > Habilitar JavaScript.
    • Firefox: Preferencias > Privacidad y seguridad > Permisos > Habilitar JavaScript.
  2. Habilita cookies:
    • Asegúrate de que no estés en modo incógnito/privado (muchos bloquean cookies de terceros).
    • Verifica que no tengas extensiones como uBlock Origin o Privacy Badger bloqueando scripts de Cloudflare.
  3. Limpia cookies y caché del dominio afectado.
  4. Reintenta la solicitud.

✅ Caso 2: Automatización / scraping (Node.js, Python, etc.)

No puedes usar fetch, requests, o curl directamente. Necesitas un navegador real con soporte JS y gestión de cookies.

🔧 Solución recomendada: Usa Playwright (o Puppeteer)

Ejemplo en Python con Playwright:

pip install playwright
playwright install chromium
Enter fullscreen mode Exit fullscreen mode
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)  # headless=True para producción
    context = browser.new_context()
    page = context.new_page()

    # Navega a la URL (Cloudflare resolverá el challenge automáticamente)
    page.goto("https://ejemplo.com", wait_until="networkidle")

    # Ahora puedes extraer contenido o interactuar
    content = page.content()
    print(content)

    browser.close()
Enter fullscreen mode Exit fullscreen mode

⚠️ Clave: Playwright ejecuta JS, maneja cookies, y simula un navegador real. Cloudflare lo detecta como "humano" y permite el acceso.

Alternativa: Usa cloudscraper (Python) — solo para desafíos simples

pip install cloudscraper
Enter fullscreen mode Exit fullscreen mode
import cloudscraper

scraper = cloudscraper.create_scraper()
resp = scraper.get("https://ejemplo.com")
print(resp.text)
Enter fullscreen mode Exit fullscreen mode

❗ Limitación: cloudscraper falla con Cloudflare Under Attack Mode o Turnstile. Usa Playwright para casos robustos.


Pro-tip: Evita bloqueos futuros

  • Simula headers reales: Usa User-Agent, Accept-Language, Referer, etc.
  • Incluye delays: No hagas peticiones rápidas (Cloudflare detecta bots por tasa).
  • No uses IPs compartidas o de VPS conocidos: Muchos están en listas negras.
  • Si es scraping profesional: Considera usar proxies rotativos + headless browser + rotación de headers.

💡 Regla de oro: Si el servidor usa Cloudflare Under Attack Mode, no hay atajo sin ejecutar JS. El desafío es intencionalmente diseñado para bloquear clientes sin motor JS.


✅ Resultado esperado: El bloqueo desaparece y el contenido se carga correctamente.

Top comments (0)