【发布时间】:2016-12-04 13:45:38
【问题描述】:
我使用的是 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 的到期日期?
感谢您的建议。
【问题讨论】: