0

简单地说,用户可以登录我的网站。

$('#login').click(function() {
    var user = $('#username').val();
    var pass = $('#password').val();
    $.ajax({
        type: "POST",
        url: "authorize.php",
        data: { username: user, password: pass },
        success: function(data) {
            $('#data').html(data);
        }
    });
});

success:无论登录是否有效,ajax都会触发,对吗?它不进行服务器端处理。我如何authorize.php与用户登录失败的 Jquery 脚本通信?

4

3 回答 3

2

在你的 php 中这样做:

// your authentication magic here
if($user->authenticated) {
    $return = array('status' => 'loggedIn');
} else {
    $return = array('status' => 'failed');
}
echo json_encode($return);

然后在您的 ajax 调用中添加设置dataType: 'json'::

$.ajax({
    type: "POST",
    url: "authorize.php",
    data: { username: user, password: pass },
    dataType: 'json', // NOTE this line
    success: function(data) {
        alert(data.status); // says 'loggedIn' or 'failed'
    }
});
于 2012-06-06T23:30:26.370 回答
0

您的返回数据中应该包含某种成功或失败项。例如,如果您使用 JSON,则数据可能是 { "loginResponse" : "failed" } 或类似的。成功事件仅表明您的 ajax 调用成功执行并接收到不是 HTTP 错误的响应。不要将其与程序流程混淆。

于 2012-06-06T23:30:10.160 回答
0

在行中:

success: function(data) {

数据有文本从服务器回显。

于 2012-06-06T23:30:10.727 回答