@lemonlimelike

Почему приходит ошибка 419?

Всем привет! Делаю авторизацию на проекте и столкнулся с тем, что при отправке данных, сервер возвращает 419.
Вот мой html-код:
<div class="modal-dialog">
						   	<div class="modal-header">
						    	<h2>Авторизация </h2>
						        <label class="btn-close" for="modal-1" aria-hidden="true">×</label>
						    </div>
						    <div class="modal-body">
						   		<input id="email" type="text" class="modal-body__text" placeholder="Email" required>
						   		<input id="password" type="password" class="modal-body__text" placeholder="Password" required>
						    </div>
						    <div class="modal-footer">
						    	<button type="button" class="btn btn-primary" onclick="auth();">Войти</button>
						    </div>
						</div>

Вот функция, которая отвечает за передачу данных:
function auth(){
  		var email = document.getElementById('email').value;
  		var password = document.getElementById('password').value;
                var tokenHeader = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
	        var postdata = new Headers({
                      'Content-Type': 'application/json',
                      'X-CSRF-TOKEN': tokenHeader
               });
  		var url = '{!!route('login')!!}';
  		fetch(url,{
  			method: 'POST',
  			postdata,
  			body: JSON.stringify({email: email, password:password, _token: '{!!csrf_token()!!}'})
  		}).then((response)=>{
  			return response.json();
  		}).then((data)=>{
  			console.log(data)
  		}).catch((error)=>{
  			console.log(error)
  		});
  	}

И вот ответ сервера:
5be84a49c6f06351019583.png
  • Вопрос задан
  • 5006 просмотров
Пригласить эксперта
Ответы на вопрос 2
netrox
@netrox
Ты точно добавил в разметку скрытое поле @csrf? Токен дожен отпралятся в теле Request при каждом типе запроса (GET исключение).
Ответ написан
@Yadalay
Php, Mysql, Html, Css, Js/Jquery/Ajax, Laravel
Судя по Вашим двум скринам в комменатриях, видно, что токены разные. Если судить по js-коду, то тоже 2 разных токена передаёте. Сделайте так:
body: JSON.stringify({email: email, password:password, _token: tokenHeader})

Но, если Вы в header используйте токен, то зачем его ещё при передаче данных указываете?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы