我正在使用symfony2和AngularJS开发应用程序。我有一个表格,我通过邮件发送$ http服务。登录表单和注册表单示例。
错误我得到的经典CSRF令牌无效,并在重新提交表单时发生。
第一次表单提交过程顺利,用户登录或注册;但如果我注销并尝试重新提交具有相同数据的表单再次登录,则会收到无效csrf令牌的错误。
尝试重新生成令牌,如果其提交的表单为:
$这 - >获得( 'form.csrf_provider') - > generateCsrfToken( '的authenticate'); 的
并将视图替换为下次表单将有一个新令牌发送,但我得到相同的错误。
我做错了什么?
答案 0 :(得分:0)
我知道你很久以前就问过这个问题,但今天我遇到了同样的问题,哪个解决方案非常简单。如果使用其他节点呈现表单,请确保form_start与form_end位于同一节点中。 就我而言,它看起来像这样:
<div>
{{form_start(form)}}
... some form inputs
</div>
{{form_end(form)}}
您可能知道form_end呈现令牌(在最新的Symfony中),因此令牌位于表单之外。
当您尝试重新呈现表单时,我想这是因为您有其他模板用于重新呈现的表单(例如,有错误),因此请确保您的HTML层次结构有效。
希望将来会帮助某人。干杯!