javascript - 在 JavaScript 中打印哈希表 session 变量

标签 javascript perl

有谁知道如何从 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/

相关文章:

javascript - React 类组件在重新渲染时更新类变量的值,但不更新函数组件

perl - 我应该如何为新用户生成一个随机的字母数字初始密码?

没有换行符,Perl 不会打印多个变量

javascript - Facebook API 网站 - JavaScript SDK - 困惑

javascript - 使用 javascript 的客户端 IP 地址

javascript - 使用 nightwatch-html-reporter,有没有办法将时间戳附加到报告文件名?

perl - 为什么 Perl 不支持普通的 [] 运算符来索引字符串?

perl - 在 Perl 中,如果强制使用 foreach 循环,如何找到字符串中匹配的位置?位置

佩尔。我不能在文件上写。该文件保持为空

javascript - 在 Javascript 的字符串中保留 N 次出现的单个字符