【问题标题】:Django - Session refreshes every time there's an ajax requestDjango - 每次有 ajax 请求时会话都会刷新
【发布时间】:2014-11-15 15:33:39
【问题描述】:

我有一个由 nginx 托管的 django 站点,它会定期发出 ajax 请求(使用 JQuery)来更新内容。最初它工作正常,但现在每次有 ajax 请求时,会话都会刷新,您必须再次登录(我检查了每个请求的 cookie 和 sessionid 更改)。当我在本地访问页面时(通过它的本地网络 IP),这不会发生。

我一直在环顾四周并阅读它可能是关于域和 sessionid cookie beeing HttpOnly 但所有请求都在同一个域上(我意识到我没有在 nginx.conf 中配置域但是在配置它之后,它没有改变任何东西),我尝试设置 SESSION_COOKIE_HTTPONLY=False 但它没有修复它所以我把它改回来了。我什至尝试将 ajax 请求更改为 POST 并添加 csrf_token 但它仍然以相同的方式工作。我还在某处读到这可能是因为 ajax 请求没有发送会话,我应该将 xhrFields: { withCredentials:true } 添加到 JQuery ajax 但它也没有修复它。

我不知道为什么它以前可以工作,而现在却不行,我不知道我做了什么会破坏它。如果有人至少能把我送到正确的方向,那将是非常有帮助的。

PS:我没有分享代码,因为它太广泛了,我真的不知道什么是相关的,所以如果你需要我分享一些东西,直接说出来。

【问题讨论】:

    标签: jquery ajax nginx django-1.6


    【解决方案1】:

    我找到了答案!我在同一个域下有两个站点,因此它们共享 cookie。 我通过在 settings.py 中更改会话 cookie 设置 SESSION_COOKIE_NAME 的名称来修复它

    【讨论】:

      猜你喜欢
      • 2014-01-15
      • 2015-06-10
      • 2023-03-12
      • 2015-10-15
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      • 2014-04-25
      • 2013-04-01
      相关资源
      最近更新 更多