Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здраствуйте дорогие друзья. Думаю заголовок темы принес не мало клопот многим из вас, потому и пишу.
Я начал изучать 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, но ничего не помогло. Помогите пожалуйста сдвинуться с места новичку
Не в сети
Извиняюсь за неправильную разметку( что </form> идет после JS), но если сделать все правильно, то всеровно не работает.
Не в сети
Если в консоли хрома посмотреть - данный заголовок отправляется?
Не в сети
Данные ведь отправляются не аяксом? По этому и возникает ошибка! Запехните поле с токеном в форму (только хидден) и тогда должно все заработать
Не в сети
Вобще да, данные отправляются не ajax`ом
Не в сети
{{ Form::open() }} << тут автоматически создается инпут хайден с токеном
{{ Form::text('name',null,['class'=>'form-control']) }}
{{ Form::button("Отправить",['type'=>'submit']) }}
Вот используйте это, только фасады добавьте и в config/app ну и посмотрите в эту сторону
Изменено Alukard19918 (06.02.2017 11:39:28)
Не в сети
можно просто токен добавить в форму с помощью {{ csrf_field() }}. если используется {{ Form::open() }} – оно это делает автоматически, но лично мне не нравятся эти хелперы для форм, я ими никогда не пользуюсь. Andrew96, если решишь использовать их, все эти хелперы устанавливаются отдельно пакетом laravelcollective/html.
Не в сети
Страницы 1