Ich benutze die neuesten Flask/Werkzeug (Flask 0.9) Client-Side-Sitzungen, um Informationen zwischen Anfragen zu persistieren. Die Sitzung ist nicht dauerhaft (da es mir gut geht, wenn der Cookie gelöscht wird, wenn der Browser geschlossen wird).Flask-Sitzung vergisst den Zugang zwischen den Anfragen
Mein Problem ist wie folgt:
ich einige serverseitigen Code verwenden, um die Flasche Session-Variable mit einem Eintrag zu füllen. Danach sucht der Session-Variablen etwas wie folgt aus:
<SecureCookieSession {u'items': SOMENOTVERYIMPORTANTDICTIONARY}, '_fresh': True, 'user_id': u'1', 'csrf': '0aef1995cdf2cxx0233fdf3321d17fc7267f3b32', '_id': 'someUNIQUEcode'}*>
ich diese Informationen benutzen, um eine Seite zu machen, die eine GET-Anforderung (durch JQuery) mit dem gleichen Kolben Anwendung führt, aber plötzlich das Wörterbuch mit den ‚Artikel‘ Eintritt in die Sitzung gegangen:
<SecureCookieSession {'_fresh': True, 'user_id': u'1', 'csrf': '0aef1995cdf2cxx0233fdf3321d17fc7267f3b32', '_id': 'someUNIQUEcode'}>
ich habe einige der Suche um, und dachte, dass es der Tatsache zusammenhängen, dass ich auf localhost bin Tests (127.0.0.1 ist nicht das gleiche wie localhost). Ich habe meine Hosts-Datei korrigiert und einen 'dev.localhost'-Eintrag hinzugefügt, um sicherzustellen, dass alle Anfragen vom selben Host stammen.
Auch der Entwicklerbereich meines Browsers (Chrome) zeigt genau die gleichen Kennungen für die Session-Cookies, die an den Server gesendet werden.
Auch die Einstellung session.modified = True
hilft nicht.
Das einzige, was zwischen den Anforderungen ändert, ist
__utmb=122666782.18.10.1363877633
für die erste Anfrage (derjenige, der die items
Eintrag auffüllt) gegen die zweite Anforderung
__utmb=122666782.19.10.1363877633
Zu denken, dass es möglicherweise noch ein Ajax-bezogenes Ding. Ich habe den Inhalt der Sitzungsvariablen nach einem einfachen Seiten-Reload getestet: Der items
-Eintrag ist immer noch aus der Sitzung entfernt.
Jede Hilfe würde sehr geschätzt werden.
Kann dies helfen http://stackoverflow.com/questions/13760008/why-do-some-flask-session-values-disappear-from-session-after-closing-the-br – codegeek
Ist nur Der Eintrag "items" wurde entfernt oder ist es etwas, das Sie in der Sitzung festgelegt haben? –
@codegeek Ich habe mir diesen Eintrag angesehen, bevor ich meine Frage gepostet habe und angenommen, dass es sich um ein Cross-Host-Cookie-Problem handelt. Ich habe meinen Hostnamen auf 'localhost.dev' gesetzt, um Verwechslungen zwischen' localhost' und '127.0.0.1' zu vermeiden. Außerdem habe ich versucht, die Cookie & Server Domäne explizit in der Flask Konfiguration zu setzen, aber das hat auch nicht geholfen. – RJH