2012-06-06 50 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) { 

數據已經從服務器呼應出來的文字。