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

标签 javascript html local-storage same-origin-policy

我想在用户端创建数据,并让来自另一个 URL 的 javascript 也可以访问它。我知道同源策略,但我想知道是否可以创建一些异常(exception)。或者,我可以使用任何技巧/功能吗?

最佳答案

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

这个技巧很简单:

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

    document.addEventListener("消息", handler, useCapture);

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

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

为了您的数据安全,您可以使用 HTTP header 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

希望对您有所帮助。

关于javascript - 是否可以使用 HTML5 本地存储在不同站点的页面之间共享数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16144906/

相关文章:

javascript - 如果答案不正确,如何让用户重新创建函数

html - 按钮和分页的 Bootstrap 对齐

javascript - 使用 localStorage 维护复选框的选中状态

javascript - 如何将多个项目推送到一个数组中并加载到 native react 中的异步存储中?

javascript - 异步操作未运行 Async React Redux Thunk

javascript - 在 extjs 、 openlayers 中添加图层

javascript - 如何在javascript中的数字中添加逗号

html - 结合元素类型和 ID

javascript - Fancybox 没有导航按钮,但有画廊作品

javascript - Firefox 中本地存储 key 验证失败