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 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, requests en 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")
Enter fullscreen mode Exit fullscreen mode

🔧 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');
Enter fullscreen mode Exit fullscreen mode

✅ 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 → Low o Essentially 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) y setAcceptCookies(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)
Enter fullscreen mode Exit fullscreen mode

Instala primero:

pip install cloudscraper
Enter fullscreen mode Exit fullscreen mode

Nota crítica: Si el sitio usa Cloudflare Turnstile (captcha sin interacción), necesitarás resolverlo explícitamente con cloudscraper + turnstile-token o usar herramientas como cfscrape + 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 (usa API Protection o Bot Fight Mode solo en endpoints públicos).

Para pruebas automatizadas, simula un navegador real con headers completos (User-Agent, Accept-Language, Sec-Fetch-*, etc.).

Usa navigator.webdriver detection bypass:

Object.defineProperty(navigator, 'webdriver', { get: () => false });

(pero recuerda: esto solo es ético en entornos de testing autorizados).

Top comments (0)