Программа после успешной регистрации отправляет ajax post запрос в registerController, запрос проходит валидацию, если все успешно должен произойти redirect .
protected $redirectTo = '/home';
вот мой аякс код
$.ajax( {
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
type: "POST",
url: "register",
data: someData,
dataType: "json",
success: function(data) {
console.log('success');
},
error: function(data) {
console.log('error');
}
});
Проблема в том что после успешной валидации redirect не происходит , в место этого возвращается error со статусом 200 и с содержимым \home страницы:
Почему статус 200 возвращается как ошибка ?
Почему возвращается содержимое \home и не происходит redirect ?
Как сделать чтобы после правильной валидации не было ошибок, и произошел бы redirect в \home ?
Во-первых, если у тебя ajax запрос к laravel, не надо делать редиректов return redirect()
, т.к. jquery - это не axios
, который понимает редиректы.
Во-вторых ты же сам тип данных указал. jQuery ждет нормальный JSON
(!!!). А при редиректе laravel выдает html
Решений несколько - установи пакет "superbalist/laravel-ajax-redirector"
, который отслеживает редиректы, если был ajax
запрос, и отправляет статус 278 с информацией, куда редиректит. А потом уже в success коллбэке window.location = 'куда редиректить'. Другое решение - самостоятельно выдавать нужный response()->json()
, А лучше все вместе применять.
Так все правильно. С чего заголовок ответа должен влиять на редирект в js? Если хотите сделать после этого редирект, то сделайте, чтобы в registerController
метод, к которому идет запрос, отправлял просто 200, если все прошло успешно, а в js уже через window.location.href
делайте редирект.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть ли уже плагины с русской морфологией для elasticsearch 62 ?
На сайте есть галочка(запомнить меня), всё работаетНо теперь не заносятся данные в неё
Моя функция должна проверять однаковы ли два компонентаНо она всегда false возвращает