仅当没有sessionid cookie时,对Django的Ajax请求才会成功

时间:2019-01-28 19:16:46

标签: ajax django django-rest-framework

我在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拒绝了请求。

0 个答案:

没有答案