【发布时间】:2018-10-31 14:43:15
【问题描述】:
我的网页包含超过 1 个带有 POST 的表单。我在每个表单中都包含了 {% csrf_token %}。
<form class="form-horizontal clearfix" role="form" id="Form1" method="post"> {% csrf_token %}
在我看来,我使用了 bot ensure_csrf_cookie 和 csrf_protect 装饰器
@ensure_csrf_cookie
@csrf_protect
@operation('monitor')
def monitor(request, **kwargs):
第一个 POST 请求从后端获取一些详细信息并将其显示在 UI 中。之后,向用户请求一些数据,然后提交第二个表单。
在 Firefox 中:当我第一次加载页面并且在第一次发布之后,csrftoken 是 X。对于第二次发布请求,csrftoken cookie 也是相同的。但是一旦抛出错误,csrf cookie 就会更改为不同的值。如果我在那之后刷新页面,csrftoken 保持不变,如果我再次发布请求,它就会成功。我还验证了表单具有隐藏值 csrfmiddlewaretoken。这与 cookie 匹配。加载页面时,我没有看到任何 404 图标。这是以前存在的。但我解决了这个问题,chrome 开始工作了。
在 chrome 中:这是有效的。
关于如何解决这个问题的任何指示?
【问题讨论】:
-
这是 favicon.ico 未找到错误。我在我的 base.html 中添加了这个。 ` ` 参考:code.djangoproject.com/ticket/28488#comment:22
标签: django django-templates csrf csrf-protection django-csrf