现在的位置: 首页 > 综合 > 正文

Django web : CSRF verification failed. Request aborted.

2012年09月03日 ⁄ 综合 ⁄ 共 1274字 ⁄ 字号 评论关闭

错误标题:CSRF verification failed. Request aborted.

错误描述:

Help

Reason given for failure:

    CSRF cookie not set.
    

In general, this can occur when there is a genuine Cross Site Request Forgery, or when Django's CSRF mechanism has not been used correctly. For POST forms, you need to ensure:

    * The view function uses RequestContext for the template, instead of Context.
    * In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL.
    * If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well as those that accept the POST data.

You're seeing the help section of this page because you have DEBUG = True in your Django settings file. Change that to False, and only the initial error message will be displayed.

You can customize this page using the CSRF_FAILURE_VIEW setting.
 
用火狐的时候出现了禁止(403)。CSRF的验证失败。 请求中止。失败的原因给予帮助:CSRF的饼干未设置。一般而言,这可以发生时,有一个真正的跨站请求伪造,
或当Django的CSRF的机制还没有正确使用。 对于POST表单,您需要确保:*该视图功能使用模板RequestContext的,而不是断章取义。
*在模板中,有1%csrf_token%)(模板网址标记在每个邮局形式的内部目标。*如果您不使用CsrfViewMiddleware,那么你必须使用数据csrf_protect任何意见,
使用csrf_token模板标记,以及那些接受这个职位。您看到此页面的帮助部分,因为你在你的Django调试=真设置文件。 改变这种状况为False,只有最初的错误信息
会被显示。您可以自定义此页面使用CSRF_FAILURE_VIEW设置

解决方案:

 

1、解决方法错误提示里已经给出了。在表单里加上{% csrf_token %}就行了。

2、在Settings里的MIDDLEWARE_CLASSES增加配置:

'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.csrf.CsrfResponseMiddleware',

抱歉!评论已关闭.