需要设置令牌'域A上的cookie与域B上已设置的相同。 我们使用JSONP跨域请求将cookie从域B传递到域A. 域A上的JQuery代码看起来像
var url = "http://domain.com/get_token.php?jsonpcallback=?";
$.ajax({
url: url,
dataType: "jsonp",
crossDomain: true,
jsonpCallback: "",
data: {'domain': "<?=$_SERVER['SERVER_NAME']?>"}
});
域B上的get_token.php看起来像
<?php
header('P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
header("Content-type: application/x-javascript");
$cookie=$_COOKIE['token'];
echo 'var token = "'.$cookie.'";
var domain = "'.$_GET['domain'].'";
if(token!="") {
var cookie_params = {
path : "/",
domain : domain,
expires: 30
};
$.cookie("token", token, cookie_params);
}';
?>
除了IE之外,所有浏览器都能正常运行。我试过设置不同的P3P标题,但它没有帮助。我还尝试设置Access-Control-Allow-Origin标头,但没有结果。唯一有用的是手动将IE中的隐私设置设置为&#34;接受所有Cookie&#34;。
我需要获得的cookie已经过期了#34;属性。有趣的是IE发送cookie而没有&#34;到期&#34;属性,但不发送带有该属性的cookie。
是否可以在不手动更改IE私密设置的情况下获取cookie?