Ошибка Laravel 419 — проблема VerifyCsrfTokenPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Ошибка Laravel 419 — проблема VerifyCsrfToken

Сообщение Anonymous »

У меня есть несколько сайтов Laravel, размещенных на одном сервере. На последнем созданном мною сайте контактная форма отказывается отправлять данные без выдачи ошибки 419. Я настроил маршрутизацию в своем файле web.php точно так же, как и на других веб-сайтах, на которых есть работающие контактные формы, и я генерирую и отправляю токен таким же способом — с помощью {{ csrf_field() }}.
Я нашел ответ на аналогичный вопрос, в котором говорится, что вы можете отключить проверку Csrf, добавив записи в массив $Exception в app/Http/Middleware/VerifyCsrfToken.php . Я убедился, что это действительно устраняет ошибку 419:

Код: Выделить всё

protected $except = [
'contact',
'contact*',
];
Но, конечно, я хочу сохранить функциональность Csrf и обновил только массив $Exception для значения устранения неполадок.
Кто-нибудь знает, чем может отличаться новая среда Laravel, которая будет иметь такое поведение 419, несмотря на передачу сгенерированного токена? Я пробовал обновить несколько настроек ENV и переключать разные вещи, но ничто, кроме изменения массива $кроме, не оказало никакого влияния на проблему.
ОбновитьПоскольку до сих пор было небольшое обсуждение, я решил предоставить дополнительную информацию и код.
Во-первых, это форма Ajax, но не Пока не вскакиваю со своего места. Я тестировал форму как с Ajax, так и без него. Если я хочу протестировать с помощью Ajax, я просто нажимаю кнопку, подключенную к прослушивателю jQuery. Если нет, я меняю или удаляю идентификатор кнопки или запускаю $("#formName").submit(); в окне консоли.
Вышеупомянутое (ajax, старомодная submit и селектор jQuery с .submit();) приводят к одному и тому же ответу — ошибке 419.
И для полноты картины, вот мой код Ajax, который работает на всех других веб-сайтах, которые я размещаю. Я определил массив postData, чтобы все было в порядке, и добавил оператор console.log() сразу после него, чтобы (снова) подтвердить, что токен генерируется нормально и правильно передается вместе с запросом.< /p>

Код: Выделить всё

var postData = {

name: $("#name").val(),
email: $("#email").val(),
message: $("#message").val(),

_token: $("input[name=_token]").val()

};

console.log(postData);

$.post("/contact", postData, function (data) {

...
Есть идеи? Может ли быть проблема с конфигурацией моего ENV или другого файла?
Обновление!
Поскольку другие сайты работают нормально, я клонировал старый сайт и просто перезаписываю файлы, которые я изменил для нового сайта, и бац! Теперь работает. Покопавшись еще немного, я запустил php artisan --version на клонированной версии сайта, а не на нерабочей, и вот результаты:
Рабочая версия: Laravel Framework 5.7.3
Нерабочая версия: Laravel Framework 5.7.9

Возможно, это ошибка Laravel? Или, возможно, некоторые пакеты на моем сервере устарели и их необходимо обновить для работы с новой версией Laravel?

Подробнее здесь: https://stackoverflow.com/questions/527 ... oken-issue
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»