0

Okei .. 我的 ajax 登录遇到了一点问题。

当我第一次提交登录表单时,它工作正常。

  • 输入正确的用户名/密码 => 登录 => 工作正常。
  • 如果输入错误的用户名/密码 => 错误消息显示 =>(错误的 uname/pass)

但是如果我在显示错误信息后尝试重新输入正确的用户名和密码,我就无法再次提交表单了!?!

在 Firebug 中,它给了我一个“响应”,其中包含我所在表单的整个页面。

我需要重新加载页面才能重新发布登录详细信息。

我认为这与安全组件有关,但禁用它是不可能的。

有什么建议么??

我登录的基础知识。

var data = $("#LoginAjax").serialize();
$.ajax({
        type: "post",
        url: "/users/ajax_login",
        data: data,
        dataType: "json",
        success: function(data){
            if (data == 0) {
                alert('wrong username/pass, try again!');
                //location.reload();
            }
        }
    });



public function ajax_login() {
   $this->autoRender = false;
    if ($this->request->is('ajax')) {
        $this->request->data['User']['password'] = $this->Auth->password($this->request->data['User']['password']);
        $user = $this->User->find('first', array('conditions' => array('username' => $this->request->data['User']['email'], 'password' => $this->request->data['User']['password'])));
            if($user){
                echo 1;     
            } else {
                 echo 0; 
            }
    } else {
    $this->Session->setFlash('No Dice!', 'flash/alert');
    $this->redirect($this->Auth->logout());
   }
   exit;
}
4

1 回答 1

0

尝试echo $this->Js->writeBuffer();在登录视图的末尾添加。

为什么不用CakePHP的JsHelper呢?

于 2012-08-07T12:38:28.873 回答