Cookies “;预期令牌不存在”;我的Apache日志中出现错误

Cookies “;预期令牌不存在”;我的Apache日志中出现错误,cookies,apache2,mod-perl,Cookies,Apache2,Mod Perl,我的网站使用mod_perl在Apache2上运行,并使用Mason模板系统。我没有在我的网站上使用任何身份验证系统或任何会话,但有时(随机)会出现以下错误: 内部服务器错误 服务器遇到内部错误或配置错误,无法正常运行 无法完成您的请求 请与服务器管理员联系,webmaster@admin.org 并通知他们错误发生的时间,以及您可能知道的任何事情 这样做可能会导致错误 有关此错误的详细信息,请参阅服务器错误 日志 此外,在运行时遇到500内部服务器错误 正在尝试使用ErrorDocument来

我的网站使用mod_perl在Apache2上运行,并使用Mason模板系统。我没有在我的网站上使用任何身份验证系统或任何会话,但有时(随机)会出现以下错误:

内部服务器错误 服务器遇到内部错误或配置错误,无法正常运行 无法完成您的请求

请与服务器管理员联系,webmaster@admin.org 并通知他们错误发生的时间,以及您可能知道的任何事情 这样做可能会导致错误

有关此错误的详细信息,请参阅服务器错误 日志

此外,在运行时遇到500内部服务器错误 正在尝试使用ErrorDocument来处理请求

在错误日志中,相应的记录为:

[Mon Dec 19 09:34:26 2011] [error] [client 127.0.0.1] Expected token not present
服务器版本字符串:

Apache/2.2.8 (Ubuntu) mod_apreq2-20051231/2.6.0 mod_perl/2.0.3 Perl/v5.8.8 Server
我的浏览器发送这个奇怪的cookie:

Name:                   BC_BANDWIDTH
Content:                1324486772745,6811
Domain:                 example.org
Path:                   /
Send For:               Any kind of connection
Accessible to Script:   Yes
Created:                Wednesday, December 21, 2011 12:59:09 PM
Expires:                When I close my browser
当我删除它,我可以重新加载我的网页,它的工作。但是,单击几下后,问题再次出现


为什么我的错误日志中会出现错误?如何修复它?

这是因为应用程序上的某些实用程序设置了无效的cookie

我面临同样的问题,无法找到“谁”正在设置无效的cookie。所以我不得不编辑Apache2/Cookie.pm。这将是解决方案:

在上面的pm中,在方法/子例程
fetch
中,您可以看到:

my $jar = $req->jar or return;
只需注释该行并插入新行:

my $jar = eval {$req->jar()};

由于在解决方案中省略了return语句,因此还必须在eval块中循环前面的语句。否则,您可能会出现第一次调用函数“cookie_class”的星座,该函数调用的是一个未定义的值,该值将引发异常。所以

补充

$jar->cookie_class(__PACKAGE__);

享受吧

eval {$jar->cookie_class(__PACKAGE__)};