是否可以使用HTML5本地存储在不同站点的页面之间共享数据?

时间:2013-04-22 10:31:47

标签: javascript html5 local-storage same-origin-policy

我想在用户端创建数据,让其他网址的javascript也可以访问它。我知道相同的原始政策,但我想知道是否有可能创建一些例外。或者,我可以使用任何技巧/功能吗?

1 个答案:

答案 0 :(得分:11)

我知道的最佳技巧是使用iframe,postMessage API可以从外部域访问localStorage。

这种技术非常简单:

  • 在您的网页上,您必须为要从中获取数据的域创建iframe
  • 您的数据域需要收听message事件:

    document.addEventListener(“message”,handler,useCapture);

  • 处理程序将负责访问localStorage并将其内容发布到源域

  • 您的源域可以使用handler API在数据域上调用postMessage函数 https://developer.mozilla.org/en-US/docs/DOM/window.postMessage

为了保护您的数据,您可以使用HTTP标头 X-Frame-Options ALLOW-FROM uri https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options?redirectlocale=en-US&redirectslug=The_X-FRAME-OPTIONS_response_header

希望它会有所帮助。