Flask会话忘记了请求之间的输入
我正在使用最新的Flask / Werkzeug(Flask 0.9)客户端会话来保持请求之间的信息。 会话未设置为持久性(因为我在浏览器关闭时删除cookie很好)。
我的问题如下:
我使用一些服务器端代码用条目填充Flask会话变量。 在此之后,Session变量看起来像这样:
我使用这些信息将一个执行GET请求的页面(通过JQuery)呈现给同一个Flask应用程序,但突然间,包含会话中“items”条目的字典消失了:
我做了一些搜索,并认为这可能与我在localhost上测试的事实有关(127.0.0.1与localhost不同)。 我修复了我的hosts文件并添加了一个’dev.localhost’条目,以确保所有请求都来自同一主机。
此外,我的浏览器(Chrome)的开发人员窗格显示与发送到服务器的会话Cookie完全相同的标识符。
此外,设置session.modified = True
也无济于事。
请求之间唯一的变化是
__utmb=122666782.18.10.1363877633
对于第一个请求(填充items
条目的请求)与第二个请求
__utmb=122666782.19.10.1363877633
认为它仍然可能是与Ajax相关的东西。 我在简单的页面重新加载后测试了会话变量的内容: items
条目仍然从会话中消失。
任何帮助将不胜感激。
事实certificate,发送回客户端(Chrome)的cookie超过了cookie大小的4096字节限制。 显然,Django默认使用服务器端会话,这使得只有在我将代码移动到Flask时才会出现此问题。 在Flask中使用服务器端会话,例如flask-kvsession和其他人应该解决问题。