У меня есть два домена domain1.site.com и domain2.site.com, я установил хранилище сеансов в domain1.site.com, а затем не могу получить хранилище сеансов на другом домене domain2.site.com с той же вкладки. Есть ли другой способ, который можно использовать для идентификации вкладки при навигации по поддоменам?
Использование хранилища сессий между поддоменами
Ответы (2)
Вопрос немного старше, но, возможно, следующее поможет другим.
Существует решение под названием «Кроссдоменное локальное хранилище», оно работает с комбинацией localStorage и postMessage. При этом у вас есть хранилище, которое вы можете использовать с любым доменом. Я знаю два проекта:
Но это не хранилище сеансов. Чтобы разделить несколько вкладок, вы должны сгенерировать уникальный идентификатор (возможно, дату создания вкладки в миллисекундах) и сохранить его в хранилище сеансов, но только в первый раз, когда в хранилище сеансов уже нет значения. Таким образом, у вас будет один идентификатор на вкладке. Этот идентификатор можно использовать для помещения данных в междоменное локальное хранилище.
Как упомянул @PaulS в своем комментарии, вы, скорее всего, хотите использовать localStorage
.
Тем не менее, вам по-прежнему мешает та же политика происхождения.
Если ваш пример верен, и оба сайта используют один и тот же домен верхнего уровня, например:
домен1 .example.com
домен2 .example.com
Затем вы можете установить document.domain = "example.com";
, чтобы позволить им обмениваться информацией.
Подробнее о MDN: https://developer.mozilla.org/en-US/docs/Web/API/document.domain
sessionStorage
вместо localStorage
. И я уже пытался установить document.domain
в общий домен верхнего уровня и проверил sessionStorage
, это не сработало.
- person binfull; 31.07.2014
document.domain
? Эта комбинация действительно должна работать.
- person Jeremy J Starcher; 31.07.2014
document.domain
в домен верхнего уровня, как вы упомянули, но я проверяю `sessionStorage'. Кстати, я пробовал это в Chrome.
- person binfull; 31.07.2014
document.domain
.
- person amanteaux; 13.10.2016
sessionStorage
в любом случае не проходит через параллельные вкладки, вам, вероятно, понадобитсяlocalStorage
для этого. Во-вторых, нет; они имеют разное происхождение, поэтому они не разделяют это. Однако вы можетеwindowRef.postMessage
передавать данные из одного в другой. - person Paul S.   schedule 31.07.2014