我有两台服务器,“www.domain.local”和“api.domain.local”。我想在从 www 调用的 api 服务器上的脚本中设置一个 cookie。Chrome 不允许我这样做(还没有尝试其他浏览器)
我的 PHP 代码:
header("Access-Control-Allow-Origin:*");
echo json_encode(array("cookie"=>print_r($_COOKIE,true)));
setcookie("test","ok",time()+24000*3600,"/",".domain.local");
在我的 jQuery 中:
$.getJSON("http://api.domain.local/test.php",{
command:"setcookie"
},function(fb){
alert(fb.cookie);
});
PHP 首先返回它拥有的 cookie,第一次运行 this 应该是零,它是。在 PHP 脚本的标题中,我看到以下内容:
设置 Cookie:test=ok; 到期=格林威治标准时间 2015 年 10 月 27 日星期二 22:52:52;路径=/; domain=.domain.local X-Powered-By:PHP/5.3.14
这是我所期望的。但是cookie没有设置。当我再次运行 jQuery 时,我希望设置 cookie(使用 $_COOKIE 的 print_r 获得警报),但我什么也没得到。我在 Chrome 调试部分的网络资源的“cookies”选项卡中注意到的一件事是到期时间设置为“无效日期”。如果我直接运行 PHP 脚本,我没有这个问题。
是否可以在从 jQuery 调用的 PHP 脚本中设置 cookie,如果可以,如何设置?