В настоящее время у меня включен CSRF во всех моих формах POST. Это отлично работает во всех браузерах, кроме Mobile Safari. Mobile Safari ВСЕГДА возвращает ошибку HTTP 419, и это реальная проблема, поскольку эти пользователи не могут зарегистрироваться на моем веб-сайте. Я использую фреймворк Laravel.
Что я могу сделать, чтобы предотвратить эти ошибки в мобильном Safari?
Я использую CSRF в своем вызове ajax следующим образом:
headers: {'X-CSRF-TOKEN': this.$csrfToken.attr('content')},
с токеном, установленным laravel в метатегах:
<meta name = "csrf-token" content = "{{ csrf_token() }}">
Использование параметров заголовков в моем вызове ajax следующим образом: заголовки: {'X-CSRF-TOKEN': this. $ CsrfToken.attr ('content')} с мета, установленным laravel: <meta name = "csrf-token "content = " {{csrf_token ()}} ">
Вам необходимо определить, связана ли проблема с включением заголовка в запрос или проблема с получением токена из метатега. Вы можете вывести токен CSRF через Javascript или в обработчике ошибок вы можете зарегистрировать все заголовки, если это ошибка CSRF. Я полагаю, проблема в том, что ваш Javascript по какой-то причине не работает в мобильном Safari.
Как вы передаете токен CSRF, зависите ли вы от Javascript, чтобы сделать это, или вы вручную включаете токен CSRF в свою форму?