問題が発生しているWebサイトの非常に単純なログインハンドラーがあり、ユーザーがユーザー名とパスワードを適切な入力に入力し、ajaxが情報をperlスクリプトに送信してチェックし、成功したかどうかに関するメッセージを返します。そのメッセージは div に配置されます。XMLHttpRequest.responseText. メッセージの結果はまったく送信されません。ステータス、ユーザー名、およびパスワードは正しく機能します。
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;
}