0

Okei.. ajax ログインで少し問題が発生しています。

ログインフォームを最初に送信すると、正常に機能しています。

  • 正しいユーザー名/パスワードを入力 => ログイン済み => 正常に動作しています。
  • 間違ったユーザー名/パスワードを入力した場合 => エラーメッセージの表示 => (間違った名前/パス)

しかし、エラーメッセージが表示された後、正しいユーザー名とパスワードを再入力しようとすると、フォームを再送信できません!?!

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 に答える