我正在使用 Firefox 3.6.10 (OS X Intel),浏览器会收集新的 cookie,而不是使旧 cookie 过期(“删除”)。
这些 cookie 是通过 Perl 的 CGI
和 CGI::Cookie
模块创建和添加的。
我正在创建并添加一个 cookie,如下所示:
my $myNewCookie = new CGI::Cookie(-name => "$myCookieName",
-value => { 'key1' => $value1, 'key2' => $value2 },
-expires => '+8h',
-secure => 1
);
print redirect(-URL => "$hostURL$redirect",
-cookie => $myNewCookie);
这是我试图让它们过期的方法:
sub clearCookie {
my $myOldCookie = cookie(-name => "$myCookieName",
-value => '',
-expires => '-1d',
-secure => 1);
print header(-cookie=>$myOldCookie);
# ...
}
这是发生了什么:
- 我运行“addCookie”脚本
- 脚本添加cookie
- 我运行“clearCookie”脚本
- cookie 的有效期不会改变
- 我再次运行“addCookie”脚本
- 该脚本添加了一个具有较新到期日期的 cookie
我可以继续,Firefox 只会积累更多的 cookie 而不会使它们中的任何一个过期。
我的脚本在当前版本的 Google Chrome 和 Apple Safari 下工作,但 Firefox 似乎不合作。
是否有我遗漏的设置,它会正确地告诉 Firefox 调整我的 cookie 的到期日期?
感谢您的建议。
最佳答案
看起来这是一个 known and frustrating bug使用 Firefox。
关于perl - Firefox 不删除过期的 Perl CGI::Cookie cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4852424/