Javascript 设置和访问从主域到子域的Cookie
我遇到了一个特殊的情况,花了很多时间进行调查,但没有成功 我有一个类似www.a的域,在主页上我运行一个Javascript来访问另一个子域dev.a中的PHP脚本。这个PHP脚本需要设置一个cookie,然后我想在另一个脚本中访问同一个cookie,我将在www.a.下再次访问该脚本 请帮助实现这一目标。 当做Javascript 设置和访问从主域到子域的Cookie,javascript,php,cookies,Javascript,Php,Cookies,我遇到了一个特殊的情况,花了很多时间进行调查,但没有成功 我有一个类似www.a的域,在主页上我运行一个Javascript来访问另一个子域dev.a中的PHP脚本。这个PHP脚本需要设置一个cookie,然后我想在另一个脚本中访问同一个cookie,我将在www.a.下再次访问该脚本 请帮助实现这一目标。 当做 Mohtashim如果要在域中设置cookie,并确保它在每个子域上都可用,则应在setcookie功能中使用域(无www子域): setcookie('cookie_name', '
Mohtashim如果要在域中设置cookie,并确保它在每个子域上都可用,则应在
setcookie
功能中使用域(无www
子域):
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
关于
setcookie
函数的所有参数。最后,我得到了一个解决方案,需要修复Ajax调用以添加以下内容:
crossDomain: true,
xhrFields: {
withCredentials: true
},
但后来它开始给我带来与访问控制允许来源相关的问题,因为在我的httpd.conf中它被设置为*,所以我对此进行了评论,但它仍然没有解决问题,然后我在PHP脚本中添加了以下两行内容,即设置会话和读取会话:
header("Access-Control-Allow-Origin: https://www.example.com");
header("Access-Control-Allow-Credentials : true");
最后,在度过了一整晚之后,现在我可以在一个子域中使用我的会话了。希望这对某人有所帮助。感谢Dekel的快速回复。在这里,我想在子域中设置cookie,然后在主域中访问它。我还需要在Ajax调用中设置一些东西吗?我想不出这一点。你确定正确设置了cookie吗?你在浏览器上看到cookie了吗?(您可以共享一个链接以检查吗?其他选项-尝试使用
.yourdomain.com
(在开头添加一个点)。