window.location.href根本不会重定向

时间:2018-12-26 18:48:02

标签: php jquery ajax laravel

当我使用Ajax登录表单登录时,它显示错误而不是使用以下命令重定向到仪表板:

window.location.href = "https://my.distincttrack.com/admin/";

如果刷新页面,由于laravel中间件中的身份验证保护,它将重定向到仪表板。但是,如果响应成功,我上面发布的代码根本无法将我重定向到该页面。

我尝试将其更改为window.location,但这没有帮助。我拿出双引号,但没有用,所以我将它们放回去。我尝试关闭ajax,然后查看正常的HTTP提交形式会如何响应,并且回响了应该达到的成功。

我的Jquery Ajax代码:

 return {
    init: function () {
        l(), $("#m_login_signin_submit").click(function (e) {
            e.preventDefault();
            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });
            var a = $(this), l = $(this).closest("form");
            l.validate({
                rules: {
                    email: {required: !0, email: !0},
                    password: {required: !0}
                }
            }), l.valid() && (a.addClass("m-loader m-loader--right m-loader--light").attr("disabled", !0), l.ajaxSubmit({
                url: "",
                method: "post",
                data: {
                  email:jQuery('#email').val(),
                  password:jQuery('#password').val()
                },
                success: function (response) {
                    if(response==="success") {
                        window.location.href="https://my.distincttrack.com/admin/";
                    } else {
                        setTimeout(function () {
                            a.removeClass("m-loader m-loader--right m-loader--light").attr("disabled", !1), i(l, "danger", "Incorrect username or password. Please try again.")
                        }, 2e3);
                    }
                }
            }))
        }),

记录用户并做出响应的我的控制器:

public function store(Request $request)
{
    if (Auth::guard('system')->attempt(['email' => $request['email'], 'password' => $request['password'], 'status' => 1], $request['remember'])) {
        return 'success';
    }
    return 'failed';
}

刀片中的“我的HTML视图”:

 <form class="m-login__form m-form" action="" method="post">
                    @csrf
                    <div class="form-group m-form__group">
                        <input class="form-control m-input" type="email" placeholder="Email" name="email" autocomplete="off" required>
                    </div>
                    <div class="form-group m-form__group">
                        <input class="form-control m-input m-login__form-input--last" type="password" placeholder="Password" name="password" required>
                    </div>
                    <div class="row m-login__form-sub">
                        <div class="col m--align-left m-login__form-left">
                            <label class="m-checkbox  m-checkbox--light">
                                <input type="checkbox" name="remember"> Remember me
                                <span></span>
                            </label>
                        </div>
                        <div class="col m--align-right m-login__form-right">
                            <a href="javascript:;" id="m_login_forget_password" class="m-link">Forget Password ?</a>
                        </div>
                    </div>
                    <div class="m-login__form-action">
                        <button id="m_login_signin_submit" class="btn btn-focus m-btn m-btn--pill m-btn--custom m-btn--air  m-login__btn">Sign In</button>
                    </div>
                </form>

我的带有CSRF令牌的元标记是正确的。

当我登录并且ajax收到响应“成功”时,应该自动将用户重定向到仪表板。如果失败,它将翻转else语句并显示错误(“凭据不正确...”),依此类推。

在我无法提供公共访问权限之前,您暂时可以看到我的问题:

https://my.distincttrack.com/admin/login

电子邮件:jarrod@distincttrack.com 通过:管理员

0 个答案:

没有答案