У меня есть проект laravel, и я написал форму входа с помощью AJAX.
Но он возвращает ошибку, если браузер пользователя не разрешает файлы cookie.
И многие пользователи с браузером Safari не могут войти в систему. Как я могу это исправить?
Образец HTML:
<form id = "loginForm" class = "validate-form" role = "form" method = "POST"
action = "{{ url('/login') }}">
{{ csrf_field() }}
Email :
<input type = "text name = "email">
password:
<input type = "password" name = "password">
</form>
Мой код JS:
$modal.find('form').submit(function () {
$('.login100-form-btn').attr('disabled', true);
$.ajax({
type: 'POST',
url: $(this).attr('action'),
data: $(this).serialize(),
dataType: 'json',
cache: false,
success: function (data) {...},
error: function (xhr, ajaxOptions, thrownError) {...}
});
return false;
});
Часть Laravel LoginController:
protected function attemptLogin(Request $request)
{
$credentials = $this->credentials($request);
return $this->guard()->attempt(
$credentials, $request->has('remember')
);
}
protected function sendLoginResponse(Request $request)
{
$request->session()->regenerate();
$this->clearLoginAttempts($request);
if ($request->expectsJson()) {
return response()->json([
'ok' => true,
'success' => true,
'intended' => URL::previous(),
], 200);
}
return $this->authenticated($request, $this->guard()->user())
?: redirect()->intended($this->redirectPath());
}
Думаю, у нас недостаточно информации в вопросе, чтобы ответить вам. Однако здесь есть сильное предположение: большинство аутентификаций при входе работают с сервером, который выдает cookie для идентификации сеанса. Если вы откажетесь, вы не войдете в систему. Я думаю, что большинство людей, которые отказываются от всех файлов cookie, должны знать об этом, поскольку они не могут войти на многие сайты.
опубликованный вами код не имеет отношения к вашей проблеме
Я отредактировал свой вопрос @LelioFaieta
Нет, я не уверен. Отредактировал вопрос @RoryMcCrossan
Я отредактировал свой вопрос @Kaddath
Приведенной выше информации недостаточно. Проверить эту ссылку laracasts.com/discuss/channels/requests/laravel-login-with-a jax
кстати, в вашем $ .ajax $ (this) будет относиться к jQuery, а не к вашей форме, если вы хотите получить доступ к форме здесь, передайте объект события в обработчик событий отправки
ты прав. моя проблема решена.






Вы уверены, что это проблема JS, а не PHP?