禁止(CSRF 令牌丢失或不正确。)Django

Posted

技术标签:

【中文标题】禁止(CSRF 令牌丢失或不正确。)Django【英文标题】:Forbidden (CSRF token missing or incorrect.) Django 【发布时间】:2021-01-08 03:48:29 【问题描述】:

我在 Django 中的 html 表单(包括文本框和一些复选框)中包含了 % csrf_token %,但由于 AJAX 中的 processData:false,我仍然收到 Forbidden (CSRF token missing or incorrect.) 错误。 如果我尝试从 AJAX 中删除 processData:false,则表单只会继续加载而没有任何结果。在浏览器控制台中,我收到以下错误:Uncaught TypeError: Illegal invocation .

我该如何解决这个问题?

【问题讨论】:

这能回答你的问题吗? Django CSRF check failing with an Ajax POST request 你能把你的HTML表单的代码发过来吗 @samir drive.google.com/file/d/1UFw49J3nUfOQtXyAvce6gYjFvOFon8v1/… @LemanKirme 请阅读我在上面评论中链接的问题和答案。 CSRF 令牌不是用 ajax 自动发送的,你必须手动添加它。如上面链接的问题中所述。阅读它。 @yedpodtrzitko 我不完全理解这个答案,因为我是 javascript 的初学者...请告诉我应该如何自动添加...作为参考,您可以查看我的我在上面给出链接的html代码 【参考方案1】:

将装饰器 @csrf_exempt 放置在您正在调用的视图中。

【讨论】:

Noo 不起作用,伙计...它给出了 multivaluedict 错误... 我不认为装饰器会导致该错误,它只是显示真实的错误。

以上是关于禁止(CSRF 令牌丢失或不正确。)Django的主要内容,如果未能解决你的问题,请参考以下文章

禁止(CSRF 令牌丢失或不正确)Django 错误

在 Django 中的 ajax POST 期间被禁止(CSRF 令牌丢失或不正确。)

Django - 在同一个模板(ajax 和表单)中处理多个 CSRF 令牌禁止(CSRF 令牌丢失或不正确。)

Django - CSRF 令牌丢失或不正确

Django:CSRF 令牌丢失或不正确。 / 避免 % csrf_token %

Django 表单中的 CSRF 令牌丢失或不正确