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 porque detecta que el navegador no cumple con los requisitos mínimos de seguridad: JavaScript deshabilitado o cookies rechazadas. Es un mecanismo de protección contra bots y tráfico malicioso.
¿Por qué ocurre?
- El navegador del cliente no ejecuta JavaScript (o está deshabilitado).
- Las cookies no están habilitadas, o el dominio está bloqueado en la configuración de privacidad del navegador.
- El cliente usa un crawler, scraper o cliente HTTP no-browser (ej.
curl,requestsen Python) que no simula un entorno real. - En entornos de automatización (Selenium, Playwright), el navegador se inicia sin habilitar explícitamente JavaScript o cookies.
- En aplicaciones web, el usuario está usando una extensión (como uBlock Origin, Privacy Badger) que bloquea scripts esenciales de Cloudflare.
Pasos para solucionarlo
✅ 1. Verifica que JavaScript y cookies estén habilitados en el navegador
Chrome/Edge:
Configuración → Privacidad y seguridad → Cookies y otros datos de sitio → Permitir cookies y guardar datos de sitios.
Accesibilidad → Activar JavaScript.Firefox:
Preferencias → Privacidad y seguridad → Cookies y datos de sitios → Acepta cookies y datos de sitios.
Configuración avanzada → Sistema → Activar JavaScript.Desactiva temporalmente extensiones de bloqueo (uBlock, Privacy Badger, NoScript).
✅ 2. Si usas automatización (Selenium, Playwright, Puppeteer)
🔧 Selenium (Python)
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
# Habilita cookies y JS (por defecto ya están, pero refuerza)
options.add_argument("--enable-javascript")
options.add_argument("--enable-cookies")
driver = webdriver.Chrome(options=options)
driver.execute_cdp_cmd('Page.setCookie', {
'name': 'test_cookie',
'value': '1',
'domain': '.tu-dominio.com'
})
driver.get("https://tu-dominio.com")
🔧 Playwright (Node.js)
const { chromium } = require('playwright');
const browser = await chromium.launch({
headless: false,
args: [
'--disable-features=IsolateOrigins,site-per-process',
'--enable-javascript',
'--enable-cookies'
]
});
const context = await browser.newContext({
javaScriptEnabled: true,
httpCredentials: null,
permissions: ['geolocation', 'notifications'],
storageState: { cookies: [], origins: [] } // Asegura que se permitan cookies
});
const page = await context.newPage();
await page.goto('https://tu-dominio.com');
✅ 3. Si eres el desarrollador del sitio (configuración Cloudflare)
- Verifica que no estés usando "Under Construction" o modo "I'm Under Attack" en la pestaña Security de Cloudflare.
-
Ajusta el nivel de desafío:
Security → Settings → Browser Integrity Check → LowoEssentially Off. -
Excluye rutas de API o bots confiables usando reglas de firewall (ej.
ip.src in {1.2.3.4}).
✅ 4. Si el problema ocurre en un iframe o embedded webview
- En Android/iOS: asegúrate de que
setJavaScriptEnabled(true)ysetAcceptCookies(true)estén activados. - En Electron: usa
webPreferences: { javascript: true, cookies: true, nodeIntegration: false }.
Bloque de código corregido (ejemplo mínimo en Python con requests + Cloudflare bypass)
⚠️ No es recomendable para producción, pero útil para pruebas rápidas:
import cloudscraper
scraper = cloudscraper.create_scraper(
browser={
'browser': 'firefox',
'platform': 'windows',
'mobile': False
}
)
response = scraper.get("https://tu-dominio.com")
print(response.text)
Instala primero:
pip install cloudscraper
Nota crítica: Si el sitio usa Cloudflare Turnstile (captcha sin interacción), necesitarás resolverlo explícitamente con
cloudscraper+turnstile-tokeno usar herramientas comocfscrape+turnstile-solver.
Pro-tip
El error no es del cliente, es del entorno de ejecución.
Si tú controlas el backend, evita usar Cloudflare para rutas de API (usaAPI ProtectionoBot Fight Modesolo en endpoints públicos).
Para pruebas automatizadas, simula un navegador real con headers completos (User-Agent,Accept-Language,Sec-Fetch-*, etc.).
Usanavigator.webdriverdetection bypass:Object.defineProperty(navigator, 'webdriver', { get: () => false });(pero recuerda: esto solo es ético en entornos de testing autorizados).
Top comments (0)