Las cookies se establecen con document.cookie
, sin embargo, no se envían al servidor (y por lo tanto no tienen efecto allí) hasta la próxima carga de página. Supongo que el comportamiento estándar de document.cookie
es imitar esto y no actualizar el valor de lectura hasta la próxima carga de página (en otras palabras, establecer document.cookie
establece una cookie, pero al leer document.cookie
se muestran las cookies que se enviaron en la solicitud).
IE9 solucionó un montón de problemas presentes en versiones anteriores. Y me refiero a un LOTE. Es muy probable que sea uno de ellos. La solución alternativa, me imagino, es el manejo de las cookies usted mismo. Al igual que en PHP tengo la función:
<?php
function setRealCookie(...) {
setcookie(...);
$_COOKIE[...] = ...;
}
?>
En JavaScript se puede crear un objeto que realiza un seguimiento de las cookies para usted, incluyendo la actualización de sí mismo cuando una cookie se establece y así sucesivamente. Algo así como:
(cookies = {
data: {},
init: function() {
var c = document.cookie.split(";"), l = c.length, i, t;
for(i=0; i<l; i++) {
t = c[i].split("=");
cookies.data[t.shift()] = t.join("=");
}
},
read: function(key) {
return cookies.data[key];
},
set: function(key,value) {
document.cookie = key+"="+value;
cookies.data[key] = value;
}
}).init();
entonces se puede establecer una cookie con cookies.set("qwe","1");
y leer de nuevo con cookies.read("qwe");
.
header ('P3P: CP = "CAO PSA NUESTRO' '); – Sam152