我们可以使用其他域的localStorage的值吗

Can we use the value of localStorage from other domains?

本文关键字:localStorage 可以使 其他 我们      更新时间:2024-01-07

我将一个值存储在一个域的本地存储中。如果我从同一浏览器访问两个域,我可以从另一个域检索该值吗?

不,不能将一个域的本地存储用于另一个域。本地存储是基于域的。你不能从不同域的本地存储读取或写入,即使是在它的子域上。您可以通过子域上的Iframe使用它。请阅读本文"跨域LocalStorage"以获得详细解释。

希望能有所帮助。:)

是的,您可以使用这个javascript库。双花胸衣尺寸:<2KB

它的使用非常简单,只需要调用方法即可。

// In www.exampleA.com site:
var bifrostCors = new bifrostCors("http://exampleB.com/", false)
// In www.exampleB.com site
var bifrostCors = new bifrostCors("http://exampleA.com/", false)
bifrostCors.getLocalStorage("local-storage-key-of-what-you-want")

实际上,这个lib呈现iframe(隐藏),并使用window.postMessage与两个不同的上下文(域)通信。你也可以自己实现,但这个库非常轻<2Kb。此外,您不仅可以访问您喜欢的本地存储功能。

  1. 获取/设置Cookie
  2. 双向消息线程
  3. 从一个域到另一个域运行JS表达式
  4. 从一个域到另一个域的DOM操作(Iframe)

您可能想看看这篇博客文章。它似乎建议您可以尝试使用iframe作为从另一个域访问本地存储的变通方法。

免责声明:我以前没有尝试过,但它看起来很有趣。让我知道它是否有效!