【问题标题】:Access root domain's localStorage from subdomain从子域访问根域的 localStorage
【发布时间】:2011-03-25 19:05:34
【问题描述】:

编辑:

为简单起见:

我有一个简单的 UserJS 脚本(FF/Chrome:Greasemonkey,Opera:内置),它修复了我经常使用的网站上的一些问题。问题是我需要在不同请求之间存储一些数据。我的第一次尝试是LocalStorage,但在使用子域时失败了:www.domain.comsubdomain.domain.com(不幸的是,根域实际上是子域——愚蠢的www)。我需要能够访问一些随处可用的数据源。

现在我被困住了 - 有什么想法吗?

【问题讨论】:

标签: javascript local-storage subdomain


【解决方案1】:

...为什么不使用GM_setValueGM_getValue

编辑:我做了一点挖掘工作。看看我发现了什么!

http://www.opera.com/docs/userjs/specs/#scriptstorage

它声称与 localStorage 的工作方式相同,但它的作用域是按脚本而不是按网站进行的。应该非常适合您的用例。

【讨论】:

  • 不幸的是,据我所知,Opera 没有提供类似的功能。
  • 那么你几乎肯定不走运。 Firefox 和 Chrome 都支持用户脚本保存数据的方式。您是否尝试过 globalStorage?这在 Opera 中有效吗?
  • 我刚刚有了一个想法:使用 cookie。缺点是,服务器也会看到 cookie 数据,使用 cookie 很麻烦。
  • 不要使用 globalStorage 或 cookie。我编辑了答案以显示 Opera 的解决方案。
  • 我明天会测试它,但它似乎正是我想要的!
【解决方案2】:

你不能。

出于安全原因,浏览器仅授予对本地存储在同一域中的数据的访问权限。这是因为在某些系统上,不同的子域属于不同的人/网站。

例如: http://msdn.microsoft.com/en-us/library/cc197062(VS.85).aspx

每个域和子域都有自己的 单独的本地存储区域。域 可以访问的存储区域 子域,子域可以访问 父域的存储区域。 例如, localStorage['example.com'] 是 可访问 example.com 和任何 它的子域。子域 localStorage['www.example.com'] 是 可访问 example.com,但不能访问 其他子域,例如 mail.example.com。

【讨论】:

  • 呃...那句话不是归结为“你应该能够”吗?
  • and subdomains can access the storage areas of parent domains 这就是我要找的。但是localStorage['...'] - 这不是正确的方法。
  • 我尝试了 localStorage['example.com'],但无法正常工作。在 3 种不同的浏览器/操作系统组合中进行了尝试:Firefox、IE8、Chrome。附言document.domain 似乎是整个 FQDN 主机名。
猜你喜欢
  • 1970-01-01
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
  • 2013-08-07
  • 1970-01-01
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多