【问题标题】:Passing argument from ajax post to perl not working将参数从 ajax post 传递给 perl 不起作用
【发布时间】:2014-09-12 04:48:12
【问题描述】:

我正在尝试将一个参数从 ajax 帖子传递给 perl,但 perl 就是看不到它...

html:

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("input").keyup(function(){
    txt=$("input").val();
    $.post("search1.pl",{suggest:txt},function(result){
      $("span").html(result);
    }); 
  }); 
});
</script>
</head>
<body>
First name:
<input type="text" />
<p>Suggestions: <span></span></p>
</body>
</html>

perl:

#!/usr/bin/perl
use CGI;
my $q = CGI->new;
my $txt = $q->param('txt');
print "Content-type: text/html\n\n";
print "txt=$txt<br>";
print "HAHA1<br>";
print "HAHA2<br>";

输出:

建议:txt=

哈哈1

哈哈2

我期待看到“txt=”有我在输入框中输入的内容

有什么线索吗??

【问题讨论】:

  • 要提交的参数名称是suggest,而不是txt
  • 还将use strict; use warnings; 添加到 Perl 的顶部。他们将帮助您调试后续问题。
  • 危险:此代码是vulnerable to XSS。用户输入在插入 HTML 文档之前需要转义!
  • 昆汀,请详细说明如何转义,谢谢

标签: jquery ajax perl cgi


【解决方案1】:

你已经调用了你的参数suggest

$.post("search1.pl",{suggest:txt}

但您正在尝试阅读名为 txt 的文章。

改为:

my $txt = $q->param('suggest');

【讨论】:

  • suggest:txt的确切含义是什么,意思是suggest是一个文本字段?
  • 不是,它的意思是“向服务器发送一个名为suggest 的参数,其值为变量txt”。
猜你喜欢
  • 2019-08-28
  • 2015-06-03
  • 2021-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
  • 2012-06-15
  • 1970-01-01
相关资源
最近更新 更多