我正在尝试使用jquery提交登录表单(这是一个弹出div)。如果表单验证失败,则我只希望在popup div上显示错误消息,并在ajax调用进入错误功能时页面重新加载时停止关闭该form(popup)。
这是我的js代码

$("#loginForm").submit(function(e) {
    var email    = $(".log-email").val();
    var password = $(".log-pass").val();

    e.preventDefault();

    $.ajax({
        type: "POST",
        url: "/login",
        dataType: "json",
        data: {password:password, email:email},
        success : function(data){
            console.log(data);
            window.location.href= data.redirecturl;
        },
        error:function(XMLHttpRequest,jqXHR, thrownError,ajaxOptions){
            var errors = XMLHttpRequest.responseJSON;
            console.log(XMLHttpRequest);
            if(errors)
            {
                $(".login-error").text(errors.email);
                $(".login-error").css("color","red");
            }
            // e.preventDefault();
            jqXHR.error();
            return false;
        }
    });
    // .fail(function(){
    //     e.preventDefault();
    //     e.stopPropagation();
    // });
});


和blade(HTML)代码看起来像,

<form id="loginForm">
    {{ Form::email('email', null, ['class' => 'vbg-input log-email', 'maxlength' => '191', 'required' => 'required', 'autofocus' => 'autofocus', 'placeholder' => trans('validation.attributes.frontend.email')]) }}

    {{ Form::password('password', ['class' => 'vbg-input log-pass', 'required' => 'required', 'placeholder' => trans('validation.attributes.frontend.password')]) }}

    <a href="" class="forgot-passw">Forgot Your Password?</a>
    <button class="sign-in hover-animation">
         <span> {{trans('labels.frontend.auth.login_button')}} </span>
    </button>
</form>


我尝试了各种方法,但没有错误就没有成功。当我使用jqXHR.error();我可以停止关闭表单,但是它在控制台中给了我一条错误消息,

Uncaught ReferenceError: jqXHR is not defined
at Object.error (script.js?v=1527662366599:148)
at fire (frontend.js?id=a613937eec44062691cf:7349)
at Object.fireWith [as rejectWith] (frontend.js?id=a613937eec44062691cf:7479)
at done (frontend.js?id=a613937eec44062691cf:13306)
at XMLHttpRequest.<anonymous> (frontend.js?id=a613937eec44062691cf:13538)


在这一点上确实很困难。提前致谢。

最佳答案

根据jQuery文档,请参见http://api.jquery.com/jQuery.ajax/


  错误:函数(jqXHR jqXHR,字符串textStatus,字符串errorThrown)


因此需要更改为

error(jqXHR, textStatus, errorThrown)


https://jsfiddle.net/bhumi/rwe705ry/

关于javascript - 未捕获的ReferenceError:未定义jqXHR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50598232/

10-10 00:17