我在Django中启用了会话以使用Django的身份验证框架。
从Django提供的html页面中,以具有足够权限的用户身份进行身份验证之后,我试图通过JQuery的PATCH
函数发送ajax()
请求,并且得到HTTP 403响应详细信息CSRF Failed: CSRF token missing or incorrect.
到目前为止我所做的:
我在X-CSRF-TOKEN标头字段中包含正确的csrf令牌。
我设置了SESSION_COOKIE_HTTPONLY = False
。
ajax请求中发送的cookie包含sessionid。如果我删除了该sessionid,则请求成功。为此,我要么在浏览器中删除会话cookie,要么在浏览器的开发人员工具中编辑PATCH请求,然后使用从Cookie
标头中删除的sessionid重新发送领域。显然,刷新页面后,我需要立即重新登录,但是与此同时,我可以PATCH
充实自己的内心。
到目前为止,我仍无法弄清为什么sessionid cookie的存在使Django拒绝了请求。