有谁知道如何从 JavaScript 访问哈希表 session 变量?我可以用 perl 创建一个并打印出来,如下所示:
my $session = new CGI::Session(undef, undef, {Directory=>'/tmp'});
$session->param("controllerHash", \%controllerHash);
my $hash_ref = $session->param('controllerHash');
print Dumper $hash_ref;
但我不知道如何从 javascript 访问它。 我尝试过这样的事情:
function billingViewControllerChanged() {
var controllerHash = Session['controllerHash'];
for (var k in controllerHash) {
console.log('key: '+k +', value: ' +controllerHash[k]);
}
}
但是我在 Firefox 控制台中看到了这个:
ReferenceError: Session is not defined
有什么想法吗?
最佳答案
最简单的方法是使用 JSON 序列化 Perl 数据结构,JavaScript 可以本地解析 JSON。
use JSON;
my $session = new CGI::Session(undef, undef, {Directory=>'/tmp'});
$session->param("controllerHash", \%controllerHash);
my $hash_ref = $session->param('controllerHash');
my $controllerHashJSON = JSON->new->encode( $hash_ref );
print <<"__EOF__"; # in CGI, STDOUT is output to the client
function billingViewControllerChanged() {
var controllerHash = $controllerHashJSON;
for (var k in controllerHash) {
console.log('key: '+k +', value: ' +controllerHash[k]);
}
}
EOF
关于javascript - 在 JavaScript 中打印哈希表 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32343838/