我在我的开发服务器上工作没有问题,当我在我的生产服务器中尝试使用真实名称,而不是localhost或ip时,我得到了:
Forbidden (403)
CSRF verification failed. Request aborted.
Help
Reason given for failure:
CSRF cookie not set.
我通过jquery发送帖子,使用javascript修复发布方法和所有...
Dunno还有什么可做的......有人能帮我一把吗?
非常感谢!
答案 0 :(得分:1)
未设置cookie通常意味着您没有add the csrf middleware。在生产部署的相关设置模块中添加该模块。当使用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,
添加到帖子数据中。