无法删除由PHP生成的cookie

时间:2013-07-31 13:45:23

标签: php javascript jquery firefox cookies

以下是我在PHP和Javascript中创建cookie的方法

PHP,在加载页面之前,我首先通过PHP创建cookie。

setcookie('my_key', $value, 0,ADMIN_COOKIE_PATH);

的Javascript。我实际上正在使用这个cookie插件的jquery。

当下拉列表发生变化时,我会更改cookie值。

jQuery.cookie("my_key", selected);

在谷歌浏览器中,一切都符合我的预期。

下拉列表更改后,my_key cookie的值将会更改。

在firefox中,它会生成另一个相同的cookie。

是的,它与PHP生成的my_key cookie相同:

同名,相同的过期(浏览器会话),相同的域,相同的路径,相同的httponly(空白),相同的安全性(空白)

唯一的区别是新cookie设置为新值。

我尝试jQuery.removeCookie('my_key'),但它只能删除新的Cookie。

我不确定它是否是firefox的错误,或者我做错了什么。但是,真的,这是一个令人讨厌的问题。


更新1:我确实没有javascript中的特定路径,现在我可以更改PHP设置路径时生成的cookie。但仍然无法通过JS删除cookie。

仅供参考,我可以删除PHP中的cookie,但不能在JS中删除它们。

1 个答案:

答案 0 :(得分:3)

受Spokey和MightyPork启发的答案:

  • 1,将路径设置为jQuery.cookie

  • 2,使用jQuery.cookie("my_key", '',{expires: -1,path:'/admin'});代替jQuery.removeCookie

<强>更新

昨晚我确实使用了jQuery.removeCookie('my_key',{path:'/ admin'}),但没有工作。我今天早上再试一次,它正在运作。也许我昨​​晚太累了。

<强>结论

整个事情是关于路径。我认为,从我的测试来看,也许,firefox比谷歌Chrome有更严格的标准来处理cookie。