我有一个用nginx托管的django站点,它会定期发出ajax请求(使用JQuery)来更新内容。最初它工作正常,但现在每次有一个ajax请求会话刷新,你必须再次登录(我检查了每个请求的cookie和sessionid更改)。当我在本地访问页面时(通过它的本地网络IP),这不会发生。
我一直在四处寻找并阅读它可能是关于域和sessionid cookie的HttpOnly,但所有请求都在同一个域(我意识到我没有在nginx.conf中配置域)但配置后,它没有改变任何东西),我尝试设置SESSION_COOKIE_HTTPONLY = False但它没有修复它所以我改回来了。我甚至尝试将ajax请求更改为POST并添加csrf_token但它仍然以相同的方式工作。我也读到某个地方可能是因为ajax请求没有发送会话而我应该将 xhrFields:{withCredentials:true} 添加到JQuery ajax但是它没有修复它要么。
我不知道为什么它曾经工作过,现在它还没有,我不知道我做了什么可以打破它。如果有人能够至少让我朝着正确的方向前进,那将是非常有帮助的。
PS:我没有分享代码,因为它太广泛而且我真的不知道相关的是什么,所以如果你需要我分享一些东西,那就说出来吧答案 0 :(得分:0)
我找到了答案!我在同一个域下有两个站点,因此他们共享cookie。 我通过在settings.py
中更改会话Cookie设置SESSION_COOKIE_NAME的名称来修复它