为什么我不能通过javascript或php设置跨子域cookie


Why can I not set cross-subdomain cookies via javascript or php?

我正在javascript和php中尝试设置跨域工作的cookie。

在PHP中:

ini_set('session.cookie_domain', '.example.com' );
session_set_cookie_params(60*60,"/",".example.com",false,false);

在JavaScript中:

document.cookie = 'coo=21c4o2fnb2et aqj256; expires=Sun Feb 01 2015 23:40:16 GMT-0500 (EST); path=/;Domain=.example.com;' 

.htaccess:中

php_value session.cookie_domain .example.com

php.ini:中

session.cookie_domain = ".example.com"

在PHP响应中,我得到:

PHPSESSID=togp8kh3ehst2iuf4t3egll7p0; expires=Sun, 02-Nov-2014 04:43:25 GMT; path=/; domain=.example.com

因此,php响应在我看来不错,但浏览器不存储javascript和php的cookie。cookie确实可以在单个子域上工作,但该网站现在正在从不同的子域请求cookie所需的数据,所以我想让cookie在整个域中工作。

我认为这回答了你的(重复的)问题:

在子域和域之间共享cookie

诀窍在于将cookie设置为可能的更高域,该域将是example.com,而不是.example.com(这甚至无效)