javascript - 如何将信息从 Web 传递到 Perl 脚本中?

标签 javascript perl shell cgi

我想调用一个perl script使用java脚本,并传递一个java脚本变量?这个脚本已经被别人写好了。我只想让他们的脚本出现在一些文本上,然后在我的网站上输出结果。问题是脚本需要一个文件作为输入。

perl脚本的用法如下

latexindent.pl [options] [file][.tex]

我想在调用此脚本时传入一个文本框,并将打印到控制台的命令返回到我的 javascript 函数。

function ajax_info() {
    $.ajax({
        url:       "latexindent.pl",
        cache:     false,
        dataType:  "text",
        data:      { mode: 'This is Some text!' },
        success:   function(result) { ajax_info_result(result); }
    });
}


function ajax_info_result(result) {
    var text   = "The server says: <b>" + result + "</b>";
    $('#info').html(text);
}

最佳答案

您提到 CGI 作为标签,所以我假设您没有使用 node.js,在这种情况下您会按照

的方式查看一些内容
var exec = require('child_process').exec;
var cmd = 'prince -v builds/pdf/book.html -o builds/pdf/book.pdf';

exec(cmd, function(error, stdout, stderr) {
// command output is in stdout
});

因此,假设您希望在服务器上运行 perl 作为由 Web 服务器执行的 CGI,那么正如 Dinesh 指出的那样,您有 2 个选择。

选项 1:

编辑文件以充当 CGI,并通过配置 CGI 处理程序等使其可通过 Web 服务器进行访问。

基本上你需要: 包含 CGI.pm,提取发布的参数并使用它们代替文件内容。这些内容应该可以帮助您入门。

#!/usr/bin/perl

use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser);
use JSON;

my $cgi = CGI::Carp->new();
my $data = from_json( $cgi->param('mode') ); ## prob need to tweak 

## now continue with your processing using $data instead of the file content.

打开2: 创建一个 perl CGI 或配置您的 Web 服务器来处理请求并执行您现有的脚本。

使用类似的代码,但使用 system()、exec 或 `` 方法执行。请务必阅读安全问题以及这些调用方法在捕获输出和注入(inject)安全问题的可能性方面的差异。

关于javascript - 如何将信息从 Web 传递到 Perl 脚本中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32917506/

相关文章:

linux - 查找字符串中的数字

python - Snakemake Expand+zip 函数意外行为

perl - 在 Moose 中,如何对 arrayref setter 进行 uniq?

linux - 如何在处理 IPv6 的 ubuntu 批处理脚本中处理正则表达式

linux -/etc/init.d 脚本 'detach' 来自输出

javascript - Durandal:找不到 view/viewModel 时处理 RequireJS 错误

javascript - 从 JavaScript 调用函数

javascript - 谷歌地图 react -Javascript : How to click on a customized marker

javascript - spy 的回调不是用 sinon 和 qunit 调用

perl - 如何更改 Perl 中的日期格式?