クッキーはdocument.cookie
と設定されていますが、次のページロードまではサーバーに送信されないため、効果がありません。 document.cookie
の標準的な動作はこれを模倣し、次のページロードまで読み込み値を更新しないと仮定します(つまり、document.cookie
を設定するとCookieを設定しますが、document.cookie
を読むと要求で送信されたCookieが得られます)。
IE9では、古いバージョンの問題が多数修正されています。そして私は、LOTを意味します。これはおそらくその1つです。回避策は、私が想像するには、自分でクッキーを処理しています。あなたはクッキーがそのように設定されたときに自分自身を更新するなど、あなたのためのクッキーを追跡し、オブジェクトを作成することができ
<?php
function setRealCookie(...) {
setcookie(...);
$_COOKIE[...] = ...;
}
?>
JavaScriptでは:ちょうどPHPのように私は機能を持っています。ような何か:
(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();
次にあなたがcookies.set("qwe","1");
でクッキーを設定し、cookies.read("qwe");
でそれを読み戻すことができます。
ヘッダー( 'P3P:CP = "CAO PSA OUR"'); – Sam152