【问题标题】:Django sessions not working in Internet ExplorerDjango 会话在 Internet Explorer 中不起作用
【发布时间】:2011-06-11 02:20:38
【问题描述】:

会话在我测试过的所有其他浏览器中都能完美运行。

如果我尝试使用 sessionid = request.COOKIES['sessionid'] 获取会话 ID,我会收到以下错误:KeyError: 'sessionid'

这就是我在 settings.py 中的内容:

CACHE_BACKEND = 'memcached://127.0.0.1:11211/'
SESSION_COOKIE_DOMAIN = '.vb.is'
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

网站是 vb.is、fiskifrettir.vb.is 和 hestabladid.vb.is

服务器设置为:apache2 (mod_wsgi) 和 nginx

【问题讨论】:

  • 该浏览器是否启用了cookies?
  • 是的,没有人可以用IE登录。
  • 执行这个:打印 request.session.session_key。并看一下是否定义了sessionid。
  • 已定义,是的。但是我每次都买一个新的。自己看:vb.is/site-info
  • 另外,我尝试设置SESSION_COOKIE_DOMAIN = 'vb.is'(参见:stackoverflow.com/questions/3095944/…

标签: django internet-explorer session cookies session-cookies


【解决方案1】:

在 XX.XX 上设置 cookie 通常不会起作用。请参阅此处的 Q#6:http://blogs.msdn.com/b/ieinternals/archive/2009/08/20/wininet-ie-cookie-internals-faq.aspx 并参阅 http://blogs.msdn.com/b/ieinternals/archive/2009/09/19/private-domain-names-and-public-suffixes-in-internet-explorer.aspx

您可以通过使用 domain=WWW.vb.is 设置 cookie 来避免此问题。

【讨论】:

  • 我想这是为了阻止网站为“.co.uk”和点赞设置 cookie。
  • 为 www.vb.is 设置 cookie 无济于事,因为我需要从 secure.vb.is 访问该 cookie 才能使我当前的设置正常工作。所以你说的是我不能有跨域持久会话......
猜你喜欢
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 2015-03-16
  • 2012-05-06
  • 2011-06-02
  • 2015-12-17
相关资源
最近更新 更多