我有一个使用 PHP 设置 cookie 的域(example.com),如下所示:
$source = 123;
setcookie("source", $source, time()+3600, '/', ".example.com");
我想跨子域共享这个 cookie。当我导航到“sub.example.com/index.php”并运行以下 PHP 代码时:
echo $_COOKIE['source'];
...我得到正确的输出:123。好!
我遇到的问题是,当我使用 jQuery 对“sub.example.com”进行 ajax 调用时,cookie 不会输出。它是空的。
$.ajax({
type: "POST",
url: 'http://sub.example.com/index.php',
dataType: "text",
error: function(jqXHR,textStatus,errorThrown) {
},
success: function() {
// DOES SOMETHING
}
});
关于跨子域的 ajax 和 cookie,我有什么不知道的吗?
(我知道上面的 Ajax 调用没有做任何事情。在我的实际代码中,子域上的页面将 COOKIE 值写入数据库。当我直接在浏览器中加载页面时,数据库是正确更新。当我从 ajax 加载页面时,数据库条目会更新,但所有值都是空的。)