【问题标题】:I am getting this error Forbidden (csrf token missing or incorrect.)我收到此错误禁止(csrf 令牌丢失或不正确。)
【发布时间】:2018-03-15 22:58:36
【问题描述】:

我对 python/django 相当陌生。但是我的代码运行得非常好。现在我突然收到这个错误。我的代码是关于文件上传的。

我在视图中添加了 {% csrf_token %}。 “django.middleware.csrf.CsrfViewMiddleware”在设置文件中。 我正在使用 render() 函数返回响应。

我有什么需要检查的吗?我已经运行/测试此代码一周左右,现在突然出现此错误。我不知道如何调试它。

提前致谢, 伏龙达

【问题讨论】:

  • 令牌应该在您的模板中,而不是您的视图中 =) 你能分享一些代码吗?
  • 感谢您的快速回复。是的,令牌在模板中。
  • 我的 html 代码是 {% csrf_token %} 和视图中的部分代码是 class browse(UpdateView): def post(self,request,**kwargs): fileList=[] fileList = request.FILES.getlist('file1') 抱歉,我无法在此处输入/编辑正确。
  • 令牌在表单内吗? (如果您在编辑问题时查看一下,您应该会看到一些格式提示 =))
  • The_Cthulhu_Kid 谢谢,是的,它在里面。

标签: python django


【解决方案1】:

通常会出现“403 Forbidden”错误,主要原因有两个:

  1. 如果发生跨站点请求伪造(可能不是您的情况)
  2. 编程错误,POST 表单中不包含 CSRF 令牌

这里是Doc

此外,当您询问可能的方法时,请参阅此副本:https://stackoverflow.com/a/31618511/7692463

希望对你有帮助!

【讨论】:

  • 感谢保罗·弗洛伊德。错误已解决。我删除了 settings.py 中的 'django.middleware.csrf.CsrfViewMiddleware' 并试图解决使用 cookie 的问题。但我想不通,所以我又把线放回去了。它又开始工作了!不过还是感谢大家的帮助
猜你喜欢
  • 2016-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-24
  • 2021-01-08
  • 2021-02-23
  • 2015-10-15
  • 2020-12-24
相关资源
最近更新 更多