Używam najnowszych sesji klienckich Flask/Werkzeug (Flask 0.9) do utrzymywania informacji między żądaniami. Sesja nie jest ustawiona jako trwała (jak mi dobrze, gdy ciasteczko jest usuwane, gdy przeglądarka jest zamknięta).Sesja kolby zapomina wpisu między żądaniami
Mój problem jest następujący:
używam kodu po stronie serwera, aby wypełnić zmiennej sesji kolby z wpisem. Po tym, zmienna sesji wygląda mniej więcej tak:
<SecureCookieSession {u'items': SOMENOTVERYIMPORTANTDICTIONARY}, '_fresh': True, 'user_id': u'1', 'csrf': '0aef1995cdf2cxx0233fdf3321d17fc7267f3b32', '_id': 'someUNIQUEcode'}*>
używam tej informacji do renderowania strony, która wykonuje żądania GET (poprzez JQuery) do tej samej aplikacji kolby, ale nagle słownika zawierającego „elementy” wpis w sesji zniknął:
<SecureCookieSession {'_fresh': True, 'user_id': u'1', 'csrf': '0aef1995cdf2cxx0233fdf3321d17fc7267f3b32', '_id': 'someUNIQUEcode'}>
zrobiłem jakiś wyszukiwanie wokół, i myślę, że może to być związane z faktem, że jestem testowania na localhost (127.0.0.1 nie jest taka sama jak localhost). Poprawiłem plik hosts i dodałem wpis "dev.localhost", aby upewnić się, że wszystkie żądania pochodzą od tego samego hosta.
Panel deweloperski przeglądarki (Chrome) pokazuje dokładnie te same identyfikatory plików cookie sesji wysyłanych na serwer. Ponadto, ustawienie session.modified = True
nie pomaga.
Jedyną rzeczą, która zmienia się między żądaniami jest
__utmb=122666782.18.10.1363877633
na pierwsze żądanie (ten, który zapełnia wpis items
) vs. drugiego wniosku
__utmb=122666782.19.10.1363877633
myśląc, że to może być nadal coś związanego z Ajaxem. Przetestowałem zawartość zmiennej sesji po prostym przeładowaniu strony: wpis items
jest nadal nieobecny w sesji.
Każda pomoc zostanie bardzo doceniona.
Może to pomóc http://stackoverflow.com/questions/13760008/why-do-some-flask-session-values-disappear-the-session-after-closing-the-br – codegeek
Czy tylko wpis "items" został usunięty, czy jest to coś, co ustawiłeś w sesji? –
@codegeek Zanim opublikowałem moje pytanie, rzuciłem okiem na ten wpis i założyłem, że może to być problem z ciasteczkami między hostami. Ustawiłem nazwę hosta na 'localhost.dev', aby uniknąć pomyłki między' localhost' i '127.0.0.1'. Próbowałem także jawnie ustawić domenę cookie i serwera w konfiguracji Flask, ale to też nie pomogło. – RJH