在javascript中打印哈希表会话变量

print hashtable session variable in javascript

本文关键字:会话 变量 哈希表 打印 javascript      更新时间:2023-09-26

有人知道如何从javascript访问哈希表会话变量吗?我可以在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运行在浏览器端。

如果你需要访问服务器端会话数据,你需要把它包含在你的网页块,或提供一个URL与CGI脚本返回它的形式,javascript可以使用