2012-06-06 21 views
0

简单地说,用户可以登录我的网站。Jquery - 处理来自PHP的登录响应

$('#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:将火无论登录的工作或没有,对不对?它没有服务器端处理。如何通过authorize.php与用户登录的Jquery脚本通信失败?

+0

错误:函数(){} – Bob

回答

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' 
    } 
}); 
+0

我的JavaScript休息时,我添加行'dataType:'json',' – Norse

+0

嗯...只是试了一下,完美的作品。你能检查你得到了什么回应吗? (查看chrome dev。工具的“网络”选项卡,或者浏览到authorize.php) – giorgio

+0

看来问题是我在页面上也有一些原始的HTML。删除这段代码解决了这个问题。看起来我必须重新构建我的网页。谢谢。 – Norse

0

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

0

在行:

success: function(data) { 

数据已经从服务器呼应出来的文字。