如何使用一个jQuery / JavaScript变量的值在Perl脚本?(How can I us

2019-10-18 02:39发布

我是一个完整的新手来的Perl和Javascript / jQuery的/阿贾克斯。 举个例子,我想发送字符串VAR exampleString到的test.pl,然后脚本将写入字符串到文件。

function sendToScript{
    var exampleString = 'this is a string';
    $.ajax({
            url: './test.pl',
            data: exampleString,
            success: function(data, textStatus, jqXHR) {
                alert('string saved to file');
            }
}

test.pl

#!/usr/bin/perl -w
use strict;

#How do I grab exampleString and set it to $string?

open (FILE, ">", "./text.txt") || die "Could not open: $!";
print FILE $string;
close FILE;

任何帮助将非常感激。

Answer 1:

你可能想是这样

var exampleString = 'this is a string';
$.ajax({
    url: './test.pl',
    data: {
        'myString' : exampleString
    },
    success: function(data, textStatus, jqXHR) {
        alert('string saved to file');
    }
});

和test.pl

#!/usr/bin/perl -w
use strict;

use CGI ();
my $cgi = CGI->new;
print $cgi->header;
my $string = $cgi->param("myString");

open (FILE, ">", "./text.txt") || die "Could not open: $!";
print FILE $string;
close FILE;


Answer 2:

下面是使用的示例Mojolicious框架。 它可以在CGI,mod_perl下,PSGI或其自身的内置服务器上运行。

#!/usr/bin/env perl

use Mojolicious::Lite;

any '/' => 'index';

any '/save' => sub {
  my $self = shift;
  my $output = 'text.txt';
  open my $fh, '>>', $output or die "Cannot open $output";
  print $fh $self->req->body . "\n";
  $self->render( text => 'Stored by Perl' );
};

app->start;

__DATA__

@@ index.html.ep

<!DOCTYPE html>
<html>
  <head>
    %= t title => 'Sending to Perl'
  </head>
  <body>
    <p>Sending</p>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    %= javascript begin
      function sendToScript (string) {
        $.post('/save', string, function (data) { alert(data) });
      }
      $(function(){sendToScript('this is a string')});
    % end
  </body>
</html>

是保存到一个文件(比如test.pl )和运行./test.pl daemon将启动内部服务器。

基本上,它设置了两个航线, /路线是它运行的JavaScript请求用户对开页面。 该/save的路线是一个javascript的帖子中的数据。 控制器回调追加全文后身体的文件,然后将确认消息发回,然后由成功JavaScript处理显示。



文章来源: How can I use the value of a JQuery/Javascript variable in a Perl script?