2011-02-17 61 views
0

我的代码使用javascript(使用jQuery的cookie插件)设置cookie,然后对需要读取该cookie的php脚本进行ajax调用。看起来,jQuery cookie插件有一个bug,因为PHP脚本无法读取这个cookie。此外,当我查看Chrome的资源面板时,我没有看到相关域下的cookie。另外,如果我使用Javascript的标准document.cookie方法设置cookie,Cookie将出现在参考资料面板中,我的PHP脚本能够读取它。我想使用jQuery插件的主要原因是因为我设置的cookie值有换行符,并且jQuery cookie插件似乎很好地处理了这个问题。这是一个将存储在MySQL数据库中的值,输出时这些换行符会自动转换为(br)和(p)标签。所以jQuery cookie插件似乎给了我想要的价值......但不是在一个真正的cookie!jQuery Cookie插件似乎并没有设置cookie

无论如何,这是我使用的代码。随意告诉我如何在不使用jQuery cookie插件的情况下维护我所需的换行符,而不是试图弄清楚插件/我的插件的实现出了什么问题。

的Javascript:

$.cookie('flavor','chocolate',{expires:7}); 
$.get('http://example.com/readCookie.php',function(data){ 
    console.log(data); 
}); 

readCookie.php

$myCookie = $_COOKIE['flavor']; 
echo $myCookie; 

的 '回响' 上述声明不回应任何事情,甚至不是一个空字符串。如果我尝试使用cookie的var_dump,我会得到NULL。但是,我可以在控制台中输入$ .cookie('flavor')并确定它已经设置好了。但正如我之前所说,它没有出现在Chrome的开发工具的资源面板中,所以我不相信它实际上是一个真正的cookie ......并且我的PHP脚本似乎也同意这个疑问:)

回答

1

在您发布的代码中,您在客户端设置了一个名为'flavor'的cookie,并尝试在服务器上读取一个名为'comment'的cookie。对我来说,你没有得到任何东西是有道理的。

也许这只是您发布问题时的错误。

当你指向

'http://' + window.location.host + '/readCookie.php' 

即使在刚刚

'/readCookie.php' 

饼干的AJAX请求或特定领域会发生什么。

+0

是的,这是一个错误。我已经相应地更新了这篇文章。当我将域名更改为window.location.host时,会发生同样的情况。它实际上似乎是jQuery cookie插件的问题。我已经更新了我的帖子,并提供了相关信息。 – maxedison 2011-02-17 23:26:56

0

我怀疑cookie值中的换行符可能会导致问题。

为什么base64不能编码cookie值?