我有一种奇怪的情况,花了很多时间进行调查,但无法成功。
我有一个像www.A这样的域名在主页上,我正在运行Javascript来从另一个子域dev.A访问PHP脚本。这个PHP脚本需要设置一个cookie,然后我想在另一个脚本中访问相同的cookie,我将在www.A.再次访问该脚本。
请帮助实现这一目标。 问候 Mohtashim
答案 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.A
和dev.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");
最后,在花了一整夜之后,我能够在子域中使用我的会话。希望这会对某人有所帮助。