Php IE中带有“expires”的Cookie未随JSONP请求一起发送
需要将域A上的“令牌”cookie设置为与域B上已设置的相同。 我们使用JSONP跨域请求将cookie从域B传递到域A。 域A上的JQuery代码如下所示Php IE中带有“expires”的Cookie未随JSONP请求一起发送,php,jquery,internet-explorer,cookies,jsonp,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
var url = "http://domain.com/get_token.php?jsonpcallback=?";
$.ajax({
url: url,
dataType: "jsonp",
crossDomain: true,
jsonpCallback: "",
data: {'domain': "<?=$_SERVER['SERVER_NAME']?>"}
});
<?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);
}';
?>
域B上的get_token.php如下所示
var url = "http://domain.com/get_token.php?jsonpcallback=?";
$.ajax({
url: url,
dataType: "jsonp",
crossDomain: true,
jsonpCallback: "",
data: {'domain': "<?=$_SERVER['SERVER_NAME']?>"}
});
<?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头,但没有帮助。我还尝试设置访问控制允许源标题,但没有结果。唯一有帮助的是在IE中手动设置隐私设置以接受所有cookie
我需要获取的cookie具有expires属性。有趣的是IE发送没有expires属性的Cookie,但不发送具有该属性的Cookie
是否可以在不手动更改IE privace设置的情况下获取cookie?如果您根本不发送P3P头怎么办?另外,为什么需要交换cookie数据?是否该数据可能不在cookie中?@Doge,不带P3P头的cookie也不会被发送。我需要获取只存储在另一个域上的cookie中的令牌。