2013-12-24 52 views
1

我是Ember和jQuery的完整初學者。我試圖實現一個登錄頁面,我不明白我應該從服務器端返回的情況下登錄失敗。我寫到現在爲止的代碼是:從Ember.js的服務器端返回成功到ajax調用什麼

App.LoginController = Ember.Controller.extend({ 
    loginFailed: false, 

    login: function() { 
     this.setProperties({ 
      loginFailed: false 
     }); 

     var request = $.post("/Login", this.getProperties("username", "password")); 
     request.then(this.success.bind(this), this.failure.bind(this)); 
    }, 

    success: function() { 
     // sign in logic 
     alert("Successful Login"); 
    }, 

    failure: function() { 
     this.set("loginFailed", true); 
    } 
}); 

我有一個登錄模板,用戶名和密碼綁定到輸入模板中。目前,我能夠在服務器端獲得請求,但我不明白我應該從服務器端返回哪些成功和失敗的情況。

+0

可以回到基本的布爾變量,如果你想從服務器端的消息,你可以用{messagecode:消息}發送一個JSON這一切都取決於您方便 –

回答

1

你只想吐出某種輸出。你在服務器上運行什麼語言?在PHP中我會做這樣的事情

while(ob_end_clean()); // make sure my output buffer is clean 
// This is your object that will be returned to the client 
$json_out = array(
    'status' => 0 // status 0 equals failed login, 1 will mean success 
    'message' => '' // if you would like to display a message and have the server control it 
); 
if($successful_login){ 
    $json_out['status'] = 1; 
} 
header('Content-Type: application/json'); 
echo json_encode($json_out); 
exit; 
+0

謝謝期待你的答覆。實際上服務器端是用Java編寫的。所以如果我返回一個JSON對象,狀態爲0,客戶端代碼會自動將其解釋爲失敗? –

+0

不,您的成功回調將採用一個參數來保存來自服務器的JSON對象/輸出。這可能有助於我在說什麼http://stackoverflow.com/questions/17559773/ember-js-rest-ajax-success-and-error – user2923779

+0

我想我終於明白了。如果請求經過,代碼將始終輸入成功回調。所以即使在登錄失敗的情況下,我也必須返回一個JSON對象,並且在成功塊內部,我必須決定如何處理失敗的登錄。只有AJAX請求失敗時,代碼纔會進入失敗塊。 –

相關問題