Cookie与"到期"在IE中没有与JSONP请求一起发送

时间:2014-04-25 14:00:49

标签: php jquery internet-explorer cookies jsonp

需要设置令牌'域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?

0 个答案:

没有答案