0

私はこのJavaScriptを持っています。これは正しくログインしていますが、ログイン ajax 呼び出しの成功コールバックで実行された ajax 呼び出しは実行されていません

$('.js-div-signin form').submit(function(){
    $form = $(this);
    $isValid = $(this).validate({
        rules: {
            email:'required email',
            password:'required'
        }
    });

    if($isValid.form()) {
        $data = {
            email:$('.js-input-email',$form).val(),
            password:$('.js-input-password',$form).val(),
            remember:$('.js-input-remember:checked',$form).val()
        };

        $('input', $form).attr('disabled','disabled');

        $.ajax({
            url:'/ajax/login',
            data:$data,
            type:'post',
            dataType:'json',
            success:function(res){
                if(res.type == 'success') {
                    /**
                     * This is the ajax call not working
                     */
                    $.ajax({
                        url:'/ajax/getheader',
                        dataType:'html',
                        success:function($html){
                            $('#header').html($html);
                        } error:function(a, b) {
                            console.log(a);
                            console.log(b);
                        }
                    })
                } else {
                    showError(res.message);
                    $('.js-input-password',$form).val('');
                    $('input', $form).removeAttr('disabled');
                    $('.js-input-password',$form).focus();
                }
            }, error:function(){
                showError('Email or Password incorrect');
                $('.js-input-password',$form).val('');
                $('input', $form).removeAttr('disabled');
                $('.js-input-password',$form).focus();
            }
        });
    }

    return false;

});

コンソールでこのログを取得します。これは、getheader への 2 回目の ajax 呼び出しが失敗したことを意味しますが、エラーは情報をまったく提供しません

> Object
Error

何か案は?

このバグはクッキーや季節に関連している可能性があると思います

私は最初の段階でログインしていないので、php にログインした ajax を介してセッションを開始し、Cookie を作成しますが、このセッションまたは Cookie にアクセスできないか、現在のページに存在しません (どこからでも)ログイン ajax 呼び出しを行います)。

そのため、php は、ログインしていないページ (Cookie またはセッションが開始されていない場所) から、ログインしているセクション (セッションと Cookie が終了する場所) のコンテンツをフェッチすることを妨げている可能性があります。

意味はありますか?

助けてくれてありがとう

4

2 に答える 2

0

ajax エラー コールバックは最大 3 つのパラメータを取ることができerror(jqXHR, textStatus, errorThrown) ます。エラー メッセージが含まれるため、最後のパラメータをログに記録すると興味深いでしょう。

于 2012-05-12T00:28:40.217 に答える
0

あなたが何をしようとしているのかわからないが、これはチェーンされた関数への関数呼び出しのように見える:

if($isValid.form()) {...}

しかし、それが機能していて、Ajax 呼び出しに到達している場合は、問題ないと思います。

2 番目の ajax 呼び出しでは、成功ハンドラーとエラー ハンドラーの間にコンマがないようです。それがおそらく、コンソールに関連するものが何も得られない理由です。

試す:

$.ajax({
    url:'/ajax/getheader',
    dataType:'html',
    success: function(data){
        console.log(data);
        $('#header').html(data);
    },
    error:function() {
        console.log('error');
    }
});
于 2012-05-12T01:08:38.607 に答える