Hi,
I’m validating a login-form via AJAX. Everything works fine, but when the SiteController invokes $this->redirect(Yii::app()->user->returnUrl); I get a 404CHttpException.
public function actionLogin()
{
if(isset($_POST['LoginForm']))
{
$model=new LoginForm;
$model->attributes=$_POST['LoginForm'];
// validate user input and redirect to the previous page if valid
if($model->validate() && $model->login()){
$this->redirect(Yii::app()->user->returnUrl);
}
// if not logged-in
else{
$this->renderPartial('login',array('model'=>$model));
}
}
}
View: login
<?php
$form=$this->beginWidget('CActiveForm', array(
'enableAjaxValidation'=>true,
'id'=>'LoginForm',
'stateful'=>true,
));
?>
<p class="username">
<?php
echo CHtml::activeLabel($model,'username');
echo CHtml::activeTextField($model,'username');
echo CHtml::error($model,'username'); ?>
</p>
<p class="password">
<?php
echo CHtml::activeLabel($model,'password');
echo CHtml::activePasswordField($model,'password');
echo CHtml::error($model,'password'); ?>
</p>
<p class="remember">
<?php
echo CHtml::activeCheckBox($model,'rememberMe'); ?> Remember me<br/>
<?php
echo CHtml::ajaxSubmitButton(
'Sign In',
array('site/login'),
array('update'=>'#signin_menu',),
array(
'type'=>'submit',
'id'=>'signin_submit'
)
);
?>
</p>
<p class="forgot"> <a href="#" id="resend_password_link">Forgot your password?</a> </p>
<p class="forgot-username"><a id=forgot_username_link title="If you remember your password, try logging in with your email" href="#">No Login? Register here!</a></p>
<?php $this->endWidget(); ?>
Any ideas what I might be doing wrong?