设置和访问主域到子域的Cookie

时间:2016-12-23 23:57:09

标签: javascript php cookies

我有一种奇怪的情况,花了很多时间进行调查,但无法成功。

我有一个像www.A这样的域名在主页上,我正在运行Javascript来从另一个子域dev.A访问PHP脚本。这个PHP脚本需要设置一个cookie,然后我想在另一个脚本中访问相同的cookie,我将在www.A.再次访问该脚本。

请帮助实现这一目标。 问候 Mohtashim

2 个答案:

答案 0 :(得分:0)

如果您想在域中设置Cookie并确保它在每个子域都可用,则应使用www函数中的域(不包含setcookie子域名):

setcookie('cookie_name', 'cookie_value' , 0 , "" , 'yourdomain.com');
                                       // ^       This is the expiring time of the cookie
                                       //     ^   This is the path of the cookie

这将允许您的子域(www.Adev.A)访问该Cookie。

Read more here关于setcookie函数的所有参数。

答案 1 :(得分:0)

最后,我得到了一个解决方案,我需要修复我的Ajax调用以添加以下内容:

crossDomain: true,
xhrFields: {
  withCredentials: true
},

但后来它开始给我一些与Access-Control-Allow-Origin相关的问题,因为在我的httpd.conf中它被设置为*,所以我评论说但是它仍然没有解决问题,然后我添加了以下两个我的PHP脚本中的行正在设置会话和阅读会话:

   header("Access-Control-Allow-Origin: https://www.example.com");
   header("Access-Control-Allow-Credentials : true");

最后,在花了一整夜之后,我能够在子域中使用我的会话。希望这会对某人有所帮助。