以下是我在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中删除它们。
答案 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。