Cómo documenta exactamente.cookie de trabajo?
Si consigo que Chrome me muestre document.cookie
entrando en la consola y escribiendo document.cookie;
me dará, digamos:
"name=John; gender=male";
Pero luego si escribo, digamos, {[3] } todo lo que hace es agregar 5;
al comienzo de la cadena, así que obtengo:
"5; name=John; gender=male";
Si intento document.cookie = null;
entonces ni siquiera hace nada.
¿Cómo puede ser esto? Es una variable, ¿no? Entonces, ¿por qué el operador de asignación no funciona como debería? ¿Es en realidad sólo un poco de azúcar sintáctica en lugar de un real variable? Y si es así, ¿qué es precisamente el azúcar que cubre?
3 answers
document.cookie
tiene un comportamiento muy especial. Como has visto, asignarle agrega (o actualiza) una cookie (o varias cookies), en lugar de reemplazar todas las cookies. Es muy inusual.
Lea todo sobre esto:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-18 18:13:36
¿Por qué no echar un vistazo a MDN?
La cadena en el lado derecho del operador de asignación a document.cookies
debe ser una lista separada por punto y coma de pares clave-valor, es decir, document.cookie = "aKey=5"
establecerá/actualizará la cookie aKey
.
Así que sí, document.cookie
muestra un comportamiento especial.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-12 21:05:33
Aquí hay un ejemplo de su " problema". Además, dice lo siguiente:
Puede eliminar una cookie simplemente actualizando su tiempo de caducidad a cero.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-22 15:07:52