Ошибка
The CSRF token is invalid. Please try to resubmit the form.
Эта ошибка иногда появляется в формах symfony2, но после обновления форма успешно сохранена.
Эта ошибка возникает не часто при сохранении формы.
Я пробовал в каждом браузере одинаково.
При обновлении токена страницы обновляются скрытые поля ввода, но ошибка остается прежней.
я погуглил и нашел полезную статью, которая предлагает
{{form_rest(form)}}
использовать перед закрытием тега формы.
Вот мой код
Код Twig
<div id = "{{ formID }}_container" class = "main">
<div class = "page">
<div id = "{{ formID }}_output"></div>
{% include 'Bundle:Form:required_msg.html.twig' %}
{{form_start(form, { 'attr' : { 'id': formID } })}}
<div style = "display: none">
{{form_rest(form)}}
</div>
{{form_end(form)}}
</div>
</div>
У меня есть это скрытое поле:
<input id = "form_id" name = "details_form[_token]" value = "somevalue" type = "hidden">
Это данные моей формы:
details_form[_token] value
details_form[age]
details_form[gender] F
Это ответ на запрос:
{"success":false,"msg":"Form is invalid.","errors":[{"name":"[0]","message":"The CSRF token is invalid. Please try to resubmit the form."}]
Другой ответ, который я видел в переполнении стека (Токен CSRF недействителен. Пожалуйста, попробуйте повторно отправить форму), говорит об этом:
public function setDefaultOptions(OptionsResolverInterface $resolver) {
$resolver->setDefaults(array(
'options' => array(),
csrf_protection' => false
));
}
Но я не хочу устанавливать флаг csrf_protection на false. Может ли кто-нибудь предложить лучший способ решения этой проблемы?
Нет, у меня ничего не работает, любое другое решение, пожалуйста
Может быть, вы можете сделать это csrf_protection' => false и сгенерировать токен и самостоятельно проверить его вручную, возможно, в прослушивателе событий
можете ли вы сказать, почему появляется токен csrf, даже если другие формы работают
Вы проверяли, присутствует ли скрытый ввод токена прямо перед возникновением ошибки csrf?
А большая у тебя форма или нет? если он большой, проверьте это stackoverflow.com/a/26766676/9750031
Может быть, токен находится внутри дисплей: нет? вы можете удалить этот CSS и попробовать еще раз?
Спасибо, Эндрю, это решение сработало для меня.
может ли кто-нибудь предложить, как получить количество max_input_vars с токеном csrf, в настоящее время я следил за URL-адресом stackoverflow.com/questions/12169818/…
который показывает длину max_input_vars 1000, но я не уверен, учитывает ли он токен csrf, пожалуйста, предложите
Возможный дубликат Токен CSRF недействителен. Пожалуйста, попробуйте повторно отправить форму




Может можно попробовать этот stackoverflow.com/a/21366066/9750031