Está usando el plugin de jQuery Cookies una forma válida de pruebas para ver si están activadas las cookies?

StackOverflow https://stackoverflow.com/questions/2029725

  •  19-09-2019
  •  | 
  •  

Pregunta

Tengo un sitio que se requiere que el usuario tenga habilitado JavaScript y las cookies antes de que puedan iniciar sesión en el sitio. (La parte JS está hecho y funciona perfectamente.) Por el momento, se nos ha sido la creación de una galleta y luego redirigir al usuario a otra página (en PHP). Esto ha funcionado bien, pero ahora tenemos un grupo de personas que se han marcado como favorito la página nos vamos a redirigir a, que por supuesto no tiene el conjunto de cookies y por lo tanto no les permite iniciar sesión.

Así que estoy tratando de encontrar otra solución para comprobar si la cookie y estoy pensando en usar la rel="noreferrer"> . Me pregunto si es compatible en todos los navegadores (JS cuando está activado por supuesto)?

¿Fue útil?

Solución

Thxs Shawn para su respuesta , pero desafortunadamente ya que los navegadores no siempre se envían a la de referencia, no es lo suficientemente confiable para poder utilizar cada vez. Porque si no se establece, entonces especie de terminar en un bucle.

La otra solución que pensé fue para redirigir a una página completamente separado, que en sí mismo comprueba si las cookies están habilitadas (redirigiendo a sí mismo). Si se habilitan las cookies, sería redirigir volver a la página original. Si no es así, entonces sería redirigir a una página sobre el problema. Creo que debería funcionar, pero no estoy seguro.

Al final, he probado el plugin de jQuery Cooke en IE 6, 7 y 8, Safari 4, Google Chrome 4, Firefox 3.5, Opera 10.2 y en algunas configuraciones diferentes y funcionó en todos ellos. Aquí está el código que estoy usando:

$.cookie('test_cookie', 'cookie_value', { path: '/' });
if ($.cookie('test_cookie') == 'cookie_value') {
    // cookie worked, set/enable appropriate things
}

No es perfecto, pero estoy pensando que va a funcionar en el 95% de los casos. De lo contrario, se producirá un error y simplemente no les permiten hacer nada.

Otros consejos

Usted puede comprobar la URL de referencia de la página y si no es su página de inicio, puede redirigir allí. Si la referencia es su página de inicio y no hay conjunto de cookies, usted sabrá que no tienen las cookies habilitadas.

Me gusta esta función 1 liner:

function cookiesEnabled() {
    return $.cookie('check', 'valid', { expires: 1 }) && $.cookie('check') == 'valid';
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top