错误
CSRF令牌无效。请尝试重新提交表单。
此错误有时会出现在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."}]
我在Stack Overflow(The CSRF token is invalid. Please try to resubmit the form)上看到的其他一些答案说:
public function setDefaultOptions(OptionsResolverInterface $resolver) {
$resolver->setDefaults(array(
'options' => array(),
csrf_protection' => false
));
}
但是,我的要求是不要将csrf_protection
标志设置为false
。任何人都可以建议最好的方法来处理这个问题吗?