Facebook喜欢和Twitter推特按钮导致跨域问题

时间:2011-06-22 00:12:09

标签: javascript facebook twitter sdk cross-domain

我正在使用推特推特按钮和facebook喜欢按钮

<a href="http://twitter.com/share" 
   class="twitter-share-button"
   data-url="http://example.com"
   data-text="some text"
   data-count="horizontal"
   data-via="someone">Tweet
</a>
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>

<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
<fb:like 
   class="fbShare" 
   href="http://example.com" 
   font="" send="true" 
   layout="button_count" 
   show_faces="false">
</fb:like>

但是他们两个都在吐出跨域错误,不是一两个错误,而是连续错误。

实际错误(有替换)是

  

不安全的JavaScript尝试访问   带URL的框架   https://www.facebook.com/plugins/like.php?channel_url=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%23cb%3Df3cde04b84%26origin%3Dhttp%253A%252F%252Fexample.com%252Ff20b9fb1fc%26relation%3Dparent.parent%26transport%3Dpostmessage&href=http%253A%252F%252Fexample.com%252F&layout=button_count&locale=en_US&node_type=link&sdk=joey&send=true&show_faces=false&width=150   来自带框架的框架   http://example.com/。域,   协议和端口必须匹配。

     

不安全的JavaScript尝试访问   带URL的框架   http://platform0.twitter.com/widgets/tweet_button.html?_=1308700896075&count=horizontal&id=twitter_tweet_button_0&lang=en&original_referer=http%3A%2F%2Fexample.com%2F&text=some text&amp; url = http%3A%2F%2Fexample.com%2F&amp; via = someone   来自带框架的框架   http://example.com/。域,   协议和端口必须匹配。

2 个答案:

答案 0 :(得分:28)

这似乎是Twitter按钮代码的一个错误,您可能希望使用Twitter登录。它似乎试图遍历页面上的每个dom对象,并且无法访问Facebook iframe对象。例如,如果您还添加了Google +1按钮,它现在会针对Google相关网址发送其他类似消息。

功能似乎没有受到影响,所以我会忽略它。任何使用此推文按钮的站点以及来自不同服务器的另一个iframe(例如Facebook / G +按钮)也会出现相同的问题(例如,尝试mashable.com上的任何页面)。如果您不想忽略它,您可以删除Twitter javascript引用并创建自己Tweet button page中提到的自定义推文按钮,方法是使用javascript弹出此网址格式:http://twitter.com/share?url=http%3A%2F%2Fdev.twitter.com%2Fpages%2Ftweet-button,这是因为推文数量不会显示在您的页面上。

答案 1 :(得分:4)

我知道这个问题太老了。但由于Twitter的这个问题仍然有效,作为对BK答案的跟进,我创建了一个自定义推文按钮,看起来与Twitter的JS API完全相同,但不使用它,但仍然包括共享数!所以,对于那些感兴趣的人,我把它上传到我的GitHub。

演示:http://fiddle.jshell.net/eyecatchup/Th6P2/2/show/
代码:https://github.com/eyecatchup/tweetbutton