当我使用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 通过:管理员