symfony2 csrf令牌在ajax请求上无效

时间:2014-04-23 13:54:42

标签: php ajax forms angularjs symfony

我正在使用symfony2和AngularJS开发应用程序。我有一个表格,我通过邮件发送$ http服务。登录表单和注册表单示例。

错误我得到的经典CSRF令牌无效,并在重新提交表单时发生。

第一次表单提交过程顺利,用户登录或注册;但如果我注销并尝试重新提交具有相同数据的表单再次登录,则会收到无效csrf令牌的错误。

尝试重新生成令牌,如果其提交的表单为:

$这 - >获得( 'form.csrf_provider') - > generateCsrfToken( '的authenticate');

并将视图替换为下次表单将有一个新令牌发送,但我得到相同的错误。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我知道你很久以前就问过这个问题,但今天我遇到了同样的问题,哪个解决方案非常简单。如果使用其他节点呈现表单,请确保form_start与form_end位于同一节点中。 就我而言,它看起来像这样:

<div>
{{form_start(form)}}
... some form inputs
</div>
{{form_end(form)}}

您可能知道form_end呈现令牌(在最新的Symfony中),因此令牌位于表单之外。

当您尝试重新呈现表单时,我想这是因为您有其他模板用于重新呈现的表单(例如,有错误),因此请确保您的HTML层次结构有效。

希望将来会帮助某人。干杯!

相关问题