我一直在研究这个特定的错误一周,调试不同的社交按钮并将其缩小到Facebook一般:我实现的每个“Like”按钮(HTML5,xfbml等)触发相同的跨域脚本错误。基本上,Facebook在点击“喜欢”时会触发每个iFrame(如下所示)的错误:
Unsafe JavaScript attempt to access frame with URL http://mediacdn.disqus.com/1326940420/build/system/def.html#xdm_e=http%3A%2F%2Fwww.vancitybuzz.com&xdm_c=default4311&xdm_p=1& from frame with URL http://www.facebook.com/plugins/like.php?channel_url=https%3A%2F%2Fs-static.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%23cb%3Df31a0247d%26origin%3Dhttp%253A%252F%252Fwww.vancitybuzz.com%252Ff3c0eb7e0c%26relation%3Dparent.parent%26transport%3Dpostmessage&extended_social_context=false&href=http%3A%2F%2Fwww.vancitybuzz.com%2F2012%2F01%2Fchinese-new-year-events-2012-vancouver-richmond-burnaby%2F&layout=box_count&locale=en_US&node_type=link&sdk=joey&send=false&show_faces=false&width=90. Domains, protocols and ports must match.
为什么这不重复:即使没有推特按钮和谷歌+按钮也会出现问题。它也出现在“喜欢”按钮的每个实现中。症状指向一个新问题。
尝试的方法:我尝试了Like按钮的多个“版本”,但都存在同样的问题。它甚至与DISQUS相冲突。
嫌犯:没有任何DISQUS代码的网页正常运行。这个变量(由DISQUS wordpress插件输出)是可疑的:
var facebookXdReceiverPath = 'http://www.vancitybuzz.com/wp-content/plugins/disqus-comment-system/xd_receiver.htm';
此外,Facebook的javascript输出也是可疑的。
自己看看:转到http://www.vancitybuzz.com/2012/01/research-in-motion-ceos-resign/它可能会改变。
根据这里的信息,有没有人知道强制解决跨域错误的解决方法?非常感谢。
答案 0 :(得分:2)
在多人调查此问题后,包括我自己,目前没有针对跨域错误的解决方法,因为Facebook使用iFrame进行通信。
这也适用于今天的Google Plus按钮。
然而,未来看起来很光明。谷歌开发者(也可能是Facebook)已经确认他们正在开发一种新的解决方案。
与此同时,有些人报道使用Facebook和其他小部件插件似乎可以缓解Wordpress结构网站中的问题。没有保证。
http://mashable.com/2010/05/07/wordpress-facebook-like-buttons/
未来:如果使用websockets(和flash ws fallbacks),我不会感到惊讶,但我会把它留给平台开发者