Значение 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));

Другие вопросы по тегам