奇怪的setcookie行为

时间:2014-01-18 21:12:56

标签: php ajax setcookie

我会尽力解释它。 我试图解决这个问题好几天了,我只是不知道出了什么问题。

首先,我正在打开一个由函数创建的简单“对话框”。 我们现在称它为openDialog。 在我的子域中,我正在用这个函数打开注册对话框, 而函数确实是,使用ajax来读取寄存器对话框的内容。 有了它,我可以毫无问题地进行注册。

该寄存器正在我的主服务器(example.com)和论坛的子域上运行。 (forum.example.com)

登录工作原理相同。我在ajax和其他东西中查询了。 问题出在这里:在主站点(example.com)中,登录正在设置cookie。 但是,在子域(forum.example.com)中,ajax对mysql执行相同的查询(上次登录日期等等), 但是setcookie没有用。

我正在使用chrome,我在网络选项卡(开发者模式)中看到,我确实看到ajax响应创建了cookie,但cookie并未真正创建。

这是setcookie:

setcookie("mycoockiename", 'myvalue', time() + 60 * 60 * 24 * 365, '/', '.example.com');

当我进入chrome开发者模式(按F12键)然后进入网络选项卡> ajax请求,在Headers选项卡中我可以看到:

Set-Cookie:mycoockiename=myvalue; expires=Sun, 18-Jan-2015 21:05:20 GMT; path=/; domain=.example.com

太好了,这意味着我已成功创建了cookie吗? 好吧,不。它并没有真正创造它。

你们知道这一点很重要。它只发生在(example.com)的子域(forum.exapmle.com)中,一切正常。 在(forum.example.com)中除了setcookie之外一切正常。

另请注意,虽然我通过主站点(example.com)创建此cookie,但我也可以在(forum.example.com)中看到此cookie

那么,对于为什么有任何想法?

1 个答案:

答案 0 :(得分:0)

修正了它,我刚用javascript创建了缺少的cookie。