Значение sessionStorage становится нулевым в другой вкладке в AngularJS
После входа я сохранил значение в сессии в Angular:
sessionStorage.setItem("CustomerID", JSON.stringify(CustomerID));
sessionStorage.setItem("Email", JSON.stringify(email));
Здесь я получаю значение сеанса:
var sessionvalue = sessionStorage.getItem("CustomerID");
На другой вкладке, если я открою страницу, то sessionvalue
становится null
, Это работает для той же вкладки.
Почему это становится null
в другой вкладке браузер?
1 ответ
По данным МДН
Свойство sessionStorage позволяет получить доступ к объекту хранения сеанса для текущего источника. sessionStorage аналогичен Window.localStorage, единственное отличие состоит в том, что данные, хранящиеся в localStorage, не имеют установленного срока действия, а данные, хранящиеся в sessionStorage, очищаются по окончании сеанса страницы. Сеанс страницы длится до тех пор, пока браузер открыт и выживает после перезагрузки и восстановления страницы. Открытие страницы в новой вкладке или окне приведет к запуску нового сеанса, который отличается от того, как работают сеансовые куки.
Источник: Window.sessionStorage
Так что вам может понадобиться что-то еще, например window.localStorage
Пример:
// in a-page.html
localStorage.setItem("CustomerID", JSON.stringify(CustomerID));
// in b-page.html
var CustomerID = localStorage.getItem("CustomerID", JSON.parse(CustomerID));