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,requestsde 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-Agento 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
# 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()
⚠️ Importante: Usa
headless=Falseen pruebas iniciales para verificar. En producción, puedes usarheadless=Trueconargs=["--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
🌐 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.
- Chrome:
- 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
- En Cloudflare Dashboard → Security → Bot Management.
- Cambia Bot Fight Mode a
Off. - 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"
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)