【问题标题】:Workaround to prevent Facebook "Like" cross-domain error?防止Facebook“喜欢”跨域错误的解决方法?
【发布时间】:2012-02-17 08:29:30
【问题描述】:

我已经为这个特定的错误工作了一周,调试不同的社交按钮并将其范围缩小到 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.

为什么这不是重复的:即使没有 twitter 按钮和 google+ 按钮也会出现此问题。它也出现在“喜欢”按钮的每个实现中。症状指向一个新问题。

尝试的方法:我已经尝试了多个“版本”的 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/,不过它可能会改变。

问题

鉴于此处的信息,是否有人知道强制消除跨域错误的解决方法?非常感谢。

【问题讨论】:

  • 这不仅适用于 Facebook,而且适用于 Google plus1 等每个跨域请求。看看这个stackoverflow.com/questions/4324108/…
  • 这是否意味着我需要同时找到静态和动态生成的“parent.locations”并统一域?你知道 Facebook 在哪里/如果把它扔进去吗?谢谢!
  • 只是为了澄清,错误是导致任何功能中断,还是只是弄乱你的控制台?浏览器倾向于记录安全异常,即使它们发生在 try/catch 块中(我想是为了警告偏执的用户网站可能试图做一些顽皮的事情?)。大多数跨域 AJAX hack 需要多次尝试和捕获才能确定哪种方法适用于您的特定浏览器。
  • @MikeRuhlin 我不遗余力,但我怀疑这可能会影响 facebook“计数”,尽管原因可能是这里一个不同且不相关的问题:stackoverflow.com/questions/8953786/…

标签: javascript facebook facebook-like cross-domain disqus


【解决方案1】:

在包括我自己在内的多人对此进行了调查后,目前没有解决跨域错误的方法,因为 Facebook 使用 iFrame 进行通信。

这也适用于现在的 Google Plus 按钮。

但是,未来看起来很光明。谷歌开发者(可能还有 Facebook)已经确认他们正在研究一种新的解决方案。

与此同时,一些人报告说,使用 Facebook 和其他小部件插件似乎可以缓解 Wordpress 结构网站中的问题。没有保证。

http://mashable.com/2010/05/07/wordpress-facebook-like-buttons/

未来:如果使用 websockets(和 flash ws 后备)我不会感到惊讶,但我会把它留给平台开发人员

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多