禁止(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的主要内容,如果未能解决你的问题,请参考以下文章
在 Django 中的 ajax POST 期间被禁止(CSRF 令牌丢失或不正确。)
Django - 在同一个模板(ajax 和表单)中处理多个 CSRF 令牌禁止(CSRF 令牌丢失或不正确。)