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