9

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

4

1 回答 1

14

我知道的最好的技巧是使用 iframe 和postMessageAPI 确实可以从外部域访问 localStorage。

这种技术非常简单:

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

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

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

  • 您的源域可以使用API https://developer.mozilla.org/en-US/docs/DOM/window.postMessagehandler调用数据域上的函数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

希望它会有所帮助。

于 2013-04-22T11:48:54.447 回答