Firefox没有收到django csrf_token

时间:2015-08-19 21:04:30

标签: python django firefox django-csrf

我在django中提交ajax表单并使用

xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));

获取csrf_token。表格在镀铬方面运作良好。但是在firefox中,csrf_token的值为null,它给出403禁止错误。当我在控制台中检查cookie时,我没有在控制台中收到csrf_token。为什么django没有给火狐浏览器提供csrf_token?

1 个答案:

答案 0 :(得分:4)

将以下装饰器添加到生成包含表单

的页面的视图中

@ensure_csrf_cookie

来自Django Docs -

  

Page使用没有任何HTML表单的AJAX

     

页面通过AJAX发出POST请求,页面没有   带有csrf_token的HTML表单会导致所需的CSRF cookie   发送。

     

解决方案:在发送页面的视图上使用ensure_csrf_cookie()。