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 的第二次 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 调用,我想没关系。

您的第二个 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 回答