Google Friend Connect如何在不需要将文件上传到客户端域的情况下实现跨域通信?

mbo*_*yle 5 javascript xss cross-domain

以前,Google的Friend Connect要求用户将几个文件上传到他们的网站以启用跨域通信,而Facebook Connect仍然要求您上传单个文件以启用它.

现在,Friend Connect不需要任何文件上传......我想知道他们是如何实现这一目标的.

参考:http: //www.techcrunch.com/2009/10/02/easy-does-it-google-friend-connect-one-ups-facebook-connects-install-wizard/

Sea*_*sey 6

在这些HTML5 postMessage,NIX,FIM(散列/片段),frameElement和使用window.name属性之间,有多种方法在不同域上的文档之间进行通信.

它们可以在不同的浏览器和不同的版本中使用,但总的来说它们允许您进行可靠的XDM(跨域消息传递).

之前完成此项目的一个项目是Apache Shindig,它可能是其中的一部分,而且最近,easyXDM项目已经到来,通过一个通用的API统一所有这些方法,使用XDM和创建复杂的应用程序变得容易. RPC.

您可以在Script Junkie中深入了解本文中传输数据的各种方法.

现在,为了直接回答你的问题,早先就认为只有postMessage,FIM(片段标识符消息)可用,并且后者有效工作,通常需要将特殊文件上传到你的域.随着越来越多的方法被发现,许多方法已被弃用作为一种技术,因此; 不再需要该文件.

仅供记录; 我是Script Junkie文章和easyXDM库的作者(就像Twitter,Disqus和其他一些人正在使用的那样).


Ant*_*lls 0

我不确定它在这个特定实例中是如何工作的,但跨域消息传递可以通过 postMessage() API 或通过更改 URL 的哈希部分并监视它来完成。

哈希更改方法之所以有效,是因为封闭页面和封闭页面都可以访问封闭页面的 URL。

当然,希望 postMessage() API 调用随着时间的推移变得更加标准。