Cómo solucionar el error “Enable JavaScript and cookies to continue”
Este mensaje aparece cuando Cloudflare (u otro proxy de seguridad similar) detecta que el navegador del usuario no cumple con los requisitos mínimos de seguridad para acceder al sitio: JavaScript deshabilitado o cookies bloqueadas.
🔍 Raíz técnica
Cloudflare implementa mecanismos de protección contra bots y ataques automatizados. Para verificar que el cliente es un navegador legítimo, requiere:
- JavaScript habilitado: para ejecutar el JavaScript challenge (desafío de validación).
- Cookies habilitadas: para mantener el estado de la sesión tras superar el desafío.
Si cualquiera de los dos está deshabilitado, Cloudflare bloquea la solicitud y muestra este mensaje.
⚠️ Importante: Este error no es un bug en tu código. Es una medida de seguridad activa. Pero si tú eres el desarrollador del sitio, este error puede aparecer en entornos de desarrollo/local si no estás sirviendo el contenido correctamente (p. ej., sin HTTPS, sin cookies configuradas, o con SameSite mal configurado).
✅ Pasos para resolverlo
1. Verifica que JavaScript esté habilitado en el navegador
-
Chrome/Edge:
Configuración > Privacidad y seguridad > Configuración de sitios > JavaScript > Permitido (recomendado) -
Firefox:
Preferencias > Privacidad y seguridad > Permisos > Habilitar JavaScript -
Safari:
Preferencias > Seguridad > Habilitar JavaScript
2. Verifica que las cookies estén habilitadas
-
Chrome/Edge:
Configuración > Privacidad y seguridad > Cookies y otros datos de sitios > Permitir que todos los sitios guarden datos -
Firefox:
Preferencias > Privacidad y seguridad > Cookies y datos de sitios > Aceptadas (recomendado) -
Safari:
Preferencias > Privacidad > Desmarcar "Bloquear cookies y otros datos de sitios"
3. Si eres el desarrollador del sitio: asegura tu entorno de producción
a) Usa HTTPS obligatorio
Cloudflare bloquea desafíos en HTTP. Configura redirección HTTP → HTTPS en tu servidor o en Cloudflare (pestaña SSL/TLS → Overview → Full (strict)).
b) Configura correctamente las cookies
- Usa
Secure,SameSite=None, yHttpOnlypara cookies críticas:
Set-Cookie: session=abc123; Path=/; Secure; HttpOnly; SameSite=None
⚠️
SameSite=NonerequiereSecure(HTTPS), de lo contrario los navegadores modernos lo bloquearán.
c) Verifica que no haya bloqueo por CORS
Si tu frontend y backend están en dominios distintos (p. ej., app.example.com y api.example.com), asegura que:
- El backend envíe
Access-Control-Allow-Credentials: true - El frontend use
credentials: 'include'enfetch/XMLHttpRequest
d) Desactiva temporalmente Cloudflare (solo para diagnóstico)
Ve a Cloudflare Dashboard > Overview > Pause Cloudflare on site. Si desaparece el error, el problema está en la configuración de Cloudflare (p. ej., Browser Integrity Check, Challenge Passage, o Security Level).
🛠 Bloque de código corregido (ejemplo de configuración de cookie en Node.js/Express)
res.cookie('session', token, {
httpOnly: true,
secure: process.env.NODE_ENV === 'production', // true solo en HTTPS
sameSite: 'none', // obligatorio para cross-site
domain: '.tudominio.com', // opcional, pero necesario para subdominios
path: '/'
});
✅ Verifica que
secure: truesolo funcione en HTTPS. En desarrollo local, usalocalhostsinsecure: trueo configura un certificado autofirmado.
💡 Pro-tip
- No ignores este error: Si lo supieres (p. ej., desactivando Under Attack Mode en Cloudflare), expones tu sitio a bots y ataques DDoS.
-
Para pruebas automatizadas: Usa Puppeteer/Playwright con
acceptInsecureCerts: truey habilita cookies explícitamente:
const browser = await puppeteer.launch({
args: ['--disable-features=IsolateOrigins,site-per-process']
});
const page = await browser.newPage();
await page.setCookie({ name: 'test', value: '123', domain: 'example.com' });
- Si el usuario está usando ad blockers o privacidad extensions: Estos pueden bloquear cookies de terceros (como las de Cloudflare). Informa al usuario que desactive temporalmente el bloqueador para el dominio.
✅ Solución definitiva: Asegura que tu sitio se sirva por HTTPS, configura cookies correctamente, y que el navegador del cliente tenga JS y cookies activados.
Top comments (0)