gpt4 book ai didi

python - 睡衣 + Django => CSRF 困惑,403 错误

转载 作者:行者123 更新时间:2023-11-28 16:50:56 27 4
gpt4 key购买 nike

我已经在 Windows 7 上通过带有 mod_wsgi 的 Apache2 运行 Pyjamas 和 Django。不过,我不认为我从这些东西的设置中遇到问题:唯一不起作用的是尝试从睡衣生成的表格。尝试在我的应用程序中使用 Pyjamas 生成的表单会产生 403(“CSRF 验证失败”错误页面)。

我在这上面花了好几个小时,阅读了我能在这里找到的所有与 CSRF 和 Pyjamas 相关的答案,并且只对 CSRF 和 Django、Django 和 Ajax 等做了很多外部研究。如果这个问题不是没有接触到任何知道在这种情况下该怎么做的人,我想我已经简化了问题的本质。

如何将 {% csrf_token %} 放入 Pyjamas 生成的表单中?这似乎是不可能的,因为据我所知,CSRF token 不是持久性的,而 Pyjamas 生成的页面是......我的 Pyjamas 页面是从 Pyjamas .py 文件生成的,导致一个装满硬编码内容的文件夹。我如何将当前的 CSRF token 集成到已经编码的表单中?

请不要犹豫,询问更多细节,这个问题非常难以解决。已发布的关于集成 Pyjamas 和 Django 的信息都没有考虑到这一点;我发现的唯一解决方案似乎知道 Django 中的 CSRF 说你应该只禁用 CSRF 保护(我可以做,但我可以用什么保护来代替它?我自己的 cookie系统?在任何情况下禁用 CSRF 保护都是一个糟糕的主意吗?)。

谢谢!

最佳答案

您需要编写一些 JavaScript 以从 cookie(HTTP 请求的一部分)中获取 CSRF token ,然后在提交时将其添加到表单中。

以这个答案作为起点:Django CSRF check failing with an Ajax POST request

这里的关键是 JavaScript 可以像 Pyjamas 生成的文件一样持久,因为它们会推迟处理 token ,直到提交表单。

关于python - 睡衣 + Django => CSRF 困惑,403 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7814826/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com