【发布时间】:2013-07-31 13:45:22
【问题描述】:
这是我在 PHP 和 Javascript 中创建 cookie 的方法
PHP,在加载页面之前,我首先通过 PHP 创建 cookie。
setcookie('my_key', $value, 0,ADMIN_COOKIE_PATH);
Javascript。我实际上是在使用 jquery 和这个 cookie 插件。
当下拉列表更改时,我更改 cookie 值。
jQuery.cookie("my_key", selected);
在 Google Chrome 中,一切正常。
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 中删除它们。
【问题讨论】:
-
你使用的是默认路径吗?
-
您是否检查过哪些 cookie 会返回给 PHP?
-
@Spokey 是的,谢谢提醒。我设置了路径
jQuery.cookie("my_key", selected,{'path':'/admin'});,我可以更改 cookie 而不是创建一个新的。但仍然无法删除 cookie。 -
试图将该cookie设置为“”?
-
@BenjaminGruenbaum 好的。我发布并在 2 天后接受它作为答案(这是规则)。
标签: php javascript jquery firefox cookies