【发布时间】:2017-05-04 10:32:47
【问题描述】:
下面的代码给出了错误:
不能在 /usr/local/share/perl/5.22.1/Mojolicious/Controller.pm 第 286 行使用未定义的值作为 ARRAY 引用。
我不太确定我会如何处理它。尤其是它在源代码中引用了一个似乎与 cookie 加密有关的错误。而且我的应用程序不包含 cookie 或加密,所以这令人惊讶。
sub remove {
my $self = shift;
my $host_id = $self->stash('host_id');
$self->hosts->remove($self->stash('host')->{host_id});
$self->flash(message => 'User created successfully!');
$self->redirect_to('hosts');
}
【问题讨论】:
-
它可能正在使用 cookie 实现 flash 消息。我必须阅读源代码。在该文件的第 286 行中是否有一个变量被用作数组引用?如果您通过 metacpan 查看,请确保检查 Mojo 的正确版本。
-
开箱即用,Mojolicious 发送一个session cookie。它在客户端存储会话数据:为接下来的几个请求进行持久数据存储,所有会话数据都使用 Mojo::JSON 进行序列化,并将 Base64 编码存储在 HMAC-SHA1 签名的 cookie 中,以防止篡改。请注意,cookie 通常有 4096 字节 (4KB) 的限制,具体取决于浏览器。
标签: perl mojolicious flash-message