У меня есть два веб-сайта http://www.example.com и https://www.example.com. Я использую хранилище сеансов HTML5 для хранения пользовательских настроек.
Пользователь достигает http://www.example.com, и я загружаю некоторые настройки по умолчанию через ajax.
Они переходят на страницу, требующую входа в систему, и отправляются на https://www.example.com/login.html
После того, как они завершат вход в систему, они отправляются обратно в http://www.example.com, где, поскольку они теперь вошли в систему, я должен получить новые настройки с сервера. Проблема в том, что http и https имеют разное происхождение и не могут совместно использовать хранилище сеансов.
То, что я пробовал, не работает:
Загрузка страницы http://www.example.com/clearSession.html в iframe, который просто запускает sessionStorage.removeItem ('key'), чтобы очистить мои данные, но, похоже, это имеет собственный контекст просмотра, поэтому он не работает.
Вещи, которые я пробовал эту работу, но я не хочу использовать:
Использование куки. Это прекрасно работает, потому что http и https могут обмениваться файлами cookie, но это означает, что все мои пользовательские настройки отправляются на сервер при каждом запросе ресурса. Обычно это около 4 КБ, но может быть до 1 МБ данных. Нет, я не могу разместить свои ресурсы в другом домене.
Не кэшируйте настройки и просто делайте запрос каждый раз, чтобы получить настройки. Я делаю это в старых браузерах, поскольку они не поддерживают хранение сеансов, но это замедляет загрузку страниц и увеличивает нагрузку на мою базу данных.