如何在我的所有浏览器中调试为什么 CSRF令牌无效错误,但是当我使用功能测试测试相同的表单时,它有效吗?
答案 0 :(得分: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>
答案 1 :(得分:2)
当我评论我的config.yml如下时,一切都开始工作了?所以新的问题是:这个配置的注释部分出了什么问题?
session:
auto_start: true
# cookie_lifetime: 86400
# cookie_path: \
# cookie_domain: example.com
# cookie_secure: true
# cookie_httponly: true
答案 2 :(得分: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
答案 3 :(得分:-5)
你可以使用@csrf_exempt装饰器来除去csrf令牌,你必须导入
来自django.views.decorators.csrf import csrf_exempt
然后在您的视图之前写下@csrf_exempt
这将正常工作:)