我正在使用jQuery.ajax()将一些
HTML表单数据发送到服务器上的Perl脚本,然后将一些数据返回给前端.
优选地,数据应该是文本/字符串格式.我还需要将它保存为变量,以便在jQuery函数中进一步使用.
我已经设置了HTML代码,JavaScript代码和CGI Perl脚本,但是当JavaScript工作时,与CGI Perl脚本的连接不是,我总是收到错误消息:“脚本调用不成功”.
也许有人可以告诉我错误在哪里?我不完全确定如何将变量从Perl脚本返回到服务器.
由于我还是jQuery和JavaScript的新手并且以前没有使用异步调用,所以任何帮助都将非常感激.
这是我的代码:
HTML代码:(用户使用其名字和名称填写表单:
Enter information
First name
Name
Login
JavaScript代码:
$(document).ready(function(){
$("form#loginForm").submit(function() { // loginForm is submitted
var firstname = $('#firstname').attr('value'); // get first name
var name = $('#name').attr('value'); // get name
if (firstname && name) { // values are not empty
$.ajax({
type: "POST",
url: "/cgi-bin/perl_script.cgi", // URL of the Perl script
// send firstname and name as parameters to the Perl script
data: "firstname=" + firstname + "&name=" + name,
// script call was *not* successful
error: function() {
alert("script call was not successful");
},
// script call was successful
// perl_data should contain the string returned by the Perl script
success: function(perl_data){
alert("Your name is: " + perl_data)
}
});
}
else {
$('div#loginResult').text("Enter your name");
$('div#loginResult').addClass("error");
}
$('div#loginResult').fadeIn();
return false;
});
});
Perl代码:
#!/usr/bin/perl -w
use CGI;
use strict;
use warnings;
# read the CGI params
my $cgi = CGI->new;
my $firstname = $cgi->param("firstname");
my $name = $cgi->param("name");
my $completename = $firstname . $name;
print $completename;