【发布时间】:2013-01-28 20:13:49
【问题描述】:
我有一个网站,由三个域组成:domain.com、sub1.domain.com 和 sub2.domain.com。
我现在想通过 sub1.domain.com 上的 AJAX 在 domain.com 上设置一个 cookie 的页面。此 cookie 必须对所有三个域都可用。
我试过了:setcookie('name','value',time()+3600,'/','.domain.com'); 并且我试过了:setcookie('name','value',time()+3600,'/','domain.com');(注意域名前的点,有人告诉我旧的浏览器不会接受它。)但这不起作用。实际上,没有设置 cookie。
如何为来自子域的 AJAX 请求设置 cookie?我已经将 header('Access-Control-Allow-Origin: *'); 添加到了 setcookie 页面。
【问题讨论】:
-
为了发送跨域 cookie,您需要 withCredentials 标志。根据请求方式,可能还需要
Access-Control-Allow-Credentials: true。 -
我在代码中加了,问题还是一样。
-
我会在正确的答案中澄清。
-
我不确定但 ini_set('session.cookie_domain', '.domain.com');