2013-05-05 190 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特定的代码段(顺便说一句,该段只是验证发送的数据,并不像验证工作流程那样)。