HTML5中的跨文档消息传递如何真正克服适用于XMLHttpRequest的同源策略



我是新手,正在开发一个使用分布式资源的应用程序。

我有一个名为"演示服务器"的服务器,它提供与模板和ajax应用程序(css、images、js…)相关的一切服务

第二个服务器只提供原始数据(比如说,当你发送"GET/resources/a-resource"时,它返回"text/plain,'abc'"),实际上我正在设备上开发一个嵌入式RESTful接口。

我有一个连接到第一台服务器的客户端,下载模板。然后,ajax代码从第二台服务器检索原始数据,并使用模板呈现给用户。

我知道ajax有一个跨域问题。我还知道一些当前的解决方案,如jquery或script标记。

我真正关心的是HTML5的跨文档消息传递功能。但我发现,他们打开了两个窗口(一个窗口+一个Iframe或一个窗口+一个窗口),并在彼此之间传递消息。

它并不像XMLHttpRequest那样向其他人发送"GET"并处理返回的数据。

请告诉我HTML5中的跨文档消息是如何解决我的问题的。

**简言之,我的痛苦在于XMLHttpRequest确实向其他源发送了GET,但跨文档消息传递没有(正如我所知),我想知道具有跨文档消息的HTML5是否能够像XMLHttpRequest一样向其他域发送GET,或者不发送

我真的很感谢你。

但我发现,他们打开了两个窗口(一个窗口+一个Iframe或一个窗口+一个窗口),并在彼此之间传递消息。

这不是真的。您可以在一个文档中拥有多个iframe,每个iframe都来自不同的域,并且它们都可以发布和接收来自彼此的消息。因此,您不需要将页面放在完全独立的窗口中。

此外,由于您同时控制演示文稿和API服务器,因此您只需将API服务器上的Access-Control-Allow-Origin头设置为仅接受来自演示文稿服务器的客户端。这将允许您像往常一样使用AJAX。

最新更新