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

Jér*_*nge 8 javascript html5 same-origin-policy local-storage

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

chr*_*mod 12

我知道的最好的技巧是使用iframe和postMessageAPI从外部域访问localStorage.

这种技术很简单:

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

    document.addEventListener("message",handler,useCapture);

  • handler将负责访问localStorage并将其内容发布到源域

  • 您的源域可以handler使用postMessageAPI 调用数据域上的函数 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

希望它会有所帮助.