我有一個相當簡單的登錄處理程序爲我的網站,我遇到了麻煩,用戶填入用戶名和密碼到適當的輸入,ajax發送信息到perl腳本,檢查,並返回一條消息關於它是否成功,以及這個信息是否被放入一個div中。現在,當我使用XMLHttpRequest.responseText獲取錯誤消息時,ajax返回「undefined」。根本沒有消息結果發送。狀態,用戶名和密碼正常工作。問題與JQuery AJAX Perl
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;
}
'味精'包含什麼?把console.log(msg)代替$('#result')。html(msg.result);並告訴你看到了什麼。它是空的嗎? – lukaleli
味精,應包含「登錄成功」或「登錄失敗」。我改變了你的建議,沒有任何改變。 – Kizzim
我最初打印的是一個散列給JSON,關鍵是「結果」,這是剩餘的。 – Kizzim