我有两个域名domain1.site.com和domain2.site.com,我已经在domain1.site.com中设置了session-storage,但是无法从同一标签页的另一个域名domain2.site.com获取session-storage。是否有其他方法可以用来识别在子域之间导航时所在的标签页?
我有两个域名domain1.site.com和domain2.site.com,我已经在domain1.site.com中设置了session-storage,但是无法从同一标签页的另一个域名domain2.site.com获取session-storage。是否有其他方法可以用来识别在子域之间导航时所在的标签页?
正如@PaulS在他的评论中提到的那样,您很可能想使用localStorage
。
话虽如此,您仍然受到同源策略的限制。
如果您的示例是正确的,并且两个站点共享相同的顶级域名,例如:
domain1 .example.com
domain2 .example.com
那么您可以设置document.domain = "example.com";
来允许它们共享信息。
有关更多详细信息,请参见MDN:https://developer.mozilla.org/zh-CN/docs/Web/API/document.domain
sessionStorage
而不是localStorage
来实现这个目的。我已经尝试将document.domain
设置为一个公共顶级域并检查了sessionStorage
,但没有成功。 - binfulldocument.domain
设置为什么?这种组合应该是有效的。 - Jeremy J Starcherdocument.domain
设置为顶级域名,但我正在检查 sessionStorage
。顺便说一下,我在 Chrome 上尝试过这个。 - binfull
sessionStorage
无论如何都不能跨并发标签页使用,您可能需要使用localStorage
。其次,不行;它们属于不同的 _源_,因此它们不共享此内容。但是,您可以尝试使用windowRef.postMessage
将数据从一个标签页传递到另一个标签页。 - Paul S.