我正在使用jQuery.ajax()将一些
HTML表单数据发送到服务器上的Perl脚本,然后将一些数据返回给前端.
优选地,数据应该是文本/字符串格式.我还需要将它保存为变量,以便在jQuery函数中进一步使用.
我已经设置了HTML代码,JavaScript代码和CGI Perl脚本,但是当JavaScript工作时,与CGI Perl脚本的连接不是,我总是收到错误消息:“脚本调用不成功”.
也许有人可以告诉我错误在哪里?我不完全确定如何将变量从Perl脚本返回到服务器.
由于我还是jQuery和JavaScript的新手并且以前没有使用异步调用,所以任何帮助都将非常感激.
这是我的代码:
<html> <head> <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="get_names.js"></script> </head> <body> <div id="loginContent" class="container"> <div id="loginResult" style="display:none;"> </div> <form id="loginForm" name="loginForm" method="post" action=""> <fieldset> <legend>Enter @R_48_4045@ion</legend> <p> <label for="firstname">First name</label> <br /> <input type="text" id="firstname" name="firstname" class="text" size="20" /> </p> <p> <label for="name">Name</label> <br /> <input type="test" id="name" name="name" class="text" size="20" /> </p> <p> <button type="submit" class="button positive"> Login </button> </p> </fieldset> </form> </div> </body> </html>
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;
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。