我的网站有一个非常简单的登录处理程序,但我遇到了问题,用户将用户名和密码填写到适当的输入中,ajax 将信息发送到检查的 perl 脚本,并返回一条关于它是否成功的消息和该消息被放置到一个div中。现在,当我使用 XMLHttpRequest.responseText 获取错误消息时,ajax 只会返回“未定义”。根本没有发送消息结果。状态、用户名和密码正常工作。
jQuery
<script>
function login() {
var login = {
status: "login",
username: $('#username').val(),
password: $('#password').val()
};
$.ajax({
type: 'POST',
url: 'bar.cgi',
dataType: "json",
data: login,
},
}).done(function( msg ) {
$('#result').html( msg );
});
}
</script>
Perl bar.cgi
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use JSON;
use Template;
my $q = CGI->new;
my $dbh = DBI->connect( $db, $db_user, $db_pass ) or die("Connection Error:
+DBI::errstr\n");
my $s = CGI::Session->new("driver:mysql;serializer:storable", $q, {'Handle'=> $dbh }) or
+die( CGI::Session->errstr );
if ($q->param('status') eq 'login') {
...check that username/password matches database if so modify session
print $s->header('application/json');
print to_json("login successful");
exit;
}