0

如何调试为什么在我的所有浏览器中出现CSRF 令牌无效错误,但是当我使用功能测试测试相同的表单时它可以工作?

4

4 回答 4

2

如果您自定义了表单呈现输入的方式,请检查您是否添加了{{form_rest(form) }},如下例所示。

例子

<form action="{{ path('BloggerBlogBundle_contact') }}" method="post" {{ form_enctype(form) }}>
    {{ form_errors(form) }}

    {{ form_row(form.name) }}
    {{ form_row(form.email) }}
    {{ form_row(form.subject) }}
    {{ form_row(form.body) }}

    {{ form_rest(form) }}

    <input type="submit" value="Submit" />
</form>
于 2012-05-19T11:50:39.057 回答
2

当我如下评论我的 config.yml 时,一切都开始工作了吗?所以新的问题是:这个配置的注释部分有什么问题?

session:
    auto_start:     true
    # cookie_lifetime:   86400
    # cookie_path:       \
    # cookie_domain:     example.com
    # cookie_secure:     true
    # cookie_httponly:   true
于 2012-05-22T06:32:53.360 回答
2

对我来说,从 symfony 2.0.16 升级到 2.1.6 后禁用安全 cookie 解决了这个问题:

session:
    cookie_lifetime:   3600
    cookie_path:       \
    cookie_domain:     .%base_domain%
    cookie_secure:     false
    cookie_httponly:   true
于 2013-01-24T11:07:35.533 回答
-5

您可以使用 @csrf_exempt 装饰器来免除您必须导入的 csrf 令牌

从 django.views.decorators.csrf 导入 csrf_exempt

然后在你的视图之前写@csrf_exempt

这将正常工作:)

于 2013-01-18T08:03:45.940 回答