Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 05.02.2017 22:11:32

TokenMismatchException in VerifyCsrfToken.php

Здраствуйте дорогие друзья. Думаю заголовок темы принес не мало клопот многим из вас, потому и пишу.
Я начал изучать Laravel только 2 дня назад, и уже половину этого времени потратил на решение данной проблемы.
У меня возникает данное исключение:
TokenMismatchException in VerifyCsrfToken.php
когда я пытаюсь вызвать маршрут. Мой код:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="csrf-token" content="{{ csrf_token() }}">
	<title>Document</title>
</head>
<body>
<form action="/Comments" method="POST">
 
	<input type="text" name="name" >
	<button type="submit">Отправить</button>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
	<script type="text/javascript">
		$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
	</script>
</form>	
</body>
</html>
Route::post('/Comments',function()
{
	print_r($_POST);
});

Я просто сделал форму, которая должна по сути перенаправлять меня на обработчик /Comments, но возникает исключение.
Я прочитал об этом на многих форумах, уже перепробывал все, начиная с советов в документации Laravel, но ничего не помогло. Помогите пожалуйста сдвинуться с места новичку roll

Не в сети

#2 05.02.2017 22:29:28

Re: TokenMismatchException in VerifyCsrfToken.php

Извиняюсь за неправильную разметку( что </form> идет после JS), но если сделать все правильно, то всеровно не работает.

Не в сети

#3 06.02.2017 05:18:01

Re: TokenMismatchException in VerifyCsrfToken.php

Если в консоли хрома посмотреть - данный заголовок отправляется?

Не в сети

#4 06.02.2017 07:41:45

TrueKanonir
Откуда: Ташкент
Сообщений: 221

Re: TokenMismatchException in VerifyCsrfToken.php

Данные ведь отправляются не аяксом? По этому и возникает ошибка! Запехните поле с токеном в форму (только хидден) и тогда должно все заработать

Не в сети

#5 06.02.2017 10:28:25

Re: TokenMismatchException in VerifyCsrfToken.php

Вобще да, данные отправляются не ajax`ом

Не в сети

#6 06.02.2017 11:38:03

Re: TokenMismatchException in VerifyCsrfToken.php

{{ Form::open() }} << тут автоматически создается инпут хайден с токеном
{{ Form::text('name',null,['class'=>'form-control']) }}
{{ Form::button("Отправить",['type'=>'submit']) }}

Вот используйте это, только фасады добавьте и в config/app ну и посмотрите в эту сторону

Изменено Alukard19918 (06.02.2017 11:39:28)

Не в сети

#7 07.02.2017 05:18:34

Re: TokenMismatchException in VerifyCsrfToken.php

можно просто токен добавить в форму с помощью {{ csrf_field() }}. если используется {{ Form::open() }} – оно это делает автоматически, но лично мне не нравятся эти хелперы для форм, я ими никогда не пользуюсь. Andrew96, если решишь использовать их, все эти хелперы устанавливаются отдельно пакетом laravelcollective/html.

Не в сети

Подвал раздела