2013-05-05 66 views
1

我正在做我的第一個phonegap應用程序,我遇到登錄問題。我在站點控制器中有一個appLogin操作,我知道它會到達控制器的操作並登錄 - 無論如何,這些憑證會被驗證並且登錄成功。但應用程序中的ajax調用未能得到響應。 如果我註釋掉登錄部分,只是回聲一些ajax調用成功並收到響應。我知道我可能錯過了關於認證的基本知識。它是什麼?在現場控制器來自phonegap的Ajax呼叫登錄Yii失敗

我的登錄操作:

public function actionAppLogin() 
{ 

    $model=new LoginForm; 

    // if it is ajax validation request 
    if(isset($_POST['ajax']) && $_POST['ajax']==='login-form') 
    { 
     echo CActiveForm::validate($model); 
     Yii::app()->end(); 
    } 

    // collect user input data 
    if(isset($_POST['loginform'])) 
    { 
     $request = $_POST['loginform']; 

     $model->attributes=$request; 

     if($model->validate() && $model->login()){ 
      //it reaches here 
      echo 111; 

     } else { 
      echo 444; 
     } 

    } else { 
     echo 222; 
    } 

} 

我的Ajax登陸功能應用:

BusinessBox.prototype.serLogin = function(){ 
var me = this; 

alert("ajax login "+me.credentials.loginform.username); 

$.ajax({ 
    type: "POST", 
    url: serverActions.appLogin(), 
    dataType: "json", 
    data: me.credentials 
}).done(function(obj) { 
    alert(obj); 
    if(obj) { 
     me.loggedIn = true; 
     alert(obj); 
    } else { 
     me.loggedIn = false; 
     alert("not logged in"); 
    } 
}).fail(function(err){ 
    alert("error log in"); 
}); 

}

+0

你可以標記你註釋出來的部分來接收響應嗎? – schmunk 2013-05-05 20:40:50

+0

登錄部分。當它被註釋掉時,它會收到響應或登錄失敗。 – 2013-05-05 21:02:25

+0

什麼**正確**是「登錄部分」,完整的行動?在PHP或JavaScript? – schmunk 2013-05-05 21:36:46

回答

0

沒錯它是達到這一節,您在您的評論標記。這是因爲您沒有在您的帖子中發送{ajax:「login-form」}參數。 如果你改變你的代碼,也可以發佈該參數,你可以在服務器端訪問你的ajax特定的代碼段(順便說一句,該段只是驗證發送的數據,並不像驗證工作流程那樣)。