Está usando el plugin de jQuery Cookies una forma válida de pruebas para ver si están activadas las cookies?
-
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)?
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';
}