javascript - 将变量从启用 JavaScript 的网页传递到 Perl 脚本

标签 javascript html perl apache

我使用 HTML 和 JavaScript,通过 Apache 2 服务器调用 Perl 脚本。

我想将一个变量从我的 JavaScript 代码传递到它正在调用的 Perl 脚本。

我找到了使用 CGI 方法执行此操作的常见方法。它工作成功,但不完全是我想要的。

例如,在我的 JavaScript 中我有这一行:

xmlhttp.open("GET", "try.pl?name=Joe", false);

调用 Perl 脚本,将参数 name 传递给脚本。

在我的 Perl 脚本中,我有:

#!C:/indigoampp/perl-5.12.1/bin/perl.exe
use CGI qw(:standard);
use strict;
use warnings;

my $query = new CGI;

my $name = $query->param('name');
print "Content-type: text/plain\n\n";
print "$name";

JavaScript 只是将结果打印到屏幕上,这样 Joe 就会弹出。

问题是我想要做的是传递一个变量。即我的代码中有一个名为 fileNameVar 的变量,它保存一个字符串(文件名)。我想将此变量传递给 Perl 脚本。

所以我想要这样的东西:

xmlhttp.open("GET", "try.pl?name=fileNameVar", false);

我的变量将会改变:我希望它是动态的。我不想像使用 name=Joe 那样将文件名硬编码到 GET 语句中,但我该如何执行此操作?

当我尝试时,它只是打印 fileNameVar 而不是 fileNameVar存储的内容。有什么想法吗?

我在网上能找到的只是文字(name=Joe 而不是 name=variable)。我对网络服务器概念非常陌生,我们将不胜感激任何帮助。

最佳答案

您应该将字符串的编码版本附加到不带查询参数值的 URL。

encodeURIComponent 的调用将 URL 中可能非法的字符编码为十六进制数字。

+ 运算符连接字符串。

所以你想要

xmlhttp.open('GET', 'try.pl?name=' + encodeURIComponent(fileNameVar), false);

关于javascript - 将变量从启用 JavaScript 的网页传递到 Perl 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17115711/

相关文章:

javascript - 如何将javascript变量值分配给php变量

javascript - 迭代 Backbone 集合

javascript - 像 Google Material 网站一样的 CSS 过渡动画

linux - bugzilla 所需的 apache 2.4 的 mod_perl.so

linux - Perl(或其他东西)- ^M 问题

perl - 检测单行中的第一个或第二个文件

javascript - 使用 javascript 访问 json

javascript - 投资组合列表中损坏的 animate() 算法

HTML DOM 拖放 : what about when mouse leaves window?

javascript - JQuery UI 可排序滚动到页面底部