我正在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(这甚至无效)