2

我在我的开发服务器上工作没有问题,当我在我的生产服务器上尝试它时,使用真实姓名,而不是 localhost 或 ip,我得到:

    Forbidden (403)

CSRF verification failed. Request aborted.
Help

Reason given for failure:

    CSRF cookie not set.

我通过 jquery 发送我的帖子,使用 javascript 修复发布方法和所有...

不知道还有什么可做的...有人可以帮帮我吗?

非常感谢!

4

1 回答 1

1

未设置 cookie 通常意味着您没有添加 csrf 中间件。将其添加到生产部署的相关设置模块中。您还需要确保通过 javascript 使用接收视图时有效。

你有两个选择。将服务器上的视图标记为,csrf_exempt或者您需要在请求中包含一个 csrf 令牌。csrf 令牌可用于任何模板作为{% csrf_token %}. 我会做后者。

要在您的请求中包含 csrf 令牌,您只需将其作为 POST 变量传递csrf_token。您可以在这样的模板中包含一个片段:

<script type="text/javascript">
    var csrf_token = '{% csrf_token %}';
</script>

无论您在哪里提出请求,只需添加"csrf_token": csrf_token,到帖子数据即可。

于 2011-06-17T19:26:42.707 回答