IE7中的Facebook频道URL递归问题

IE7中的Facebook频道URL递归问题,facebook,facebook-graph-api,internet-explorer-7,facebook-javascript-sdk,Facebook,Facebook Graph Api,Internet Explorer 7,Facebook Javascript Sdk,我正在为一个网站异步加载FBJSSDK,该网站具有一些共享功能(将文章、视频、照片等共享到用户的时间线)。在大多数情况下,一切都很正常,但在IE7中,我注意到不断有请求发送到我的channelUrl。他们似乎永远不会结束。它并没有完全破坏网站,但我不想继续发送所有这些请求。我不知道是什么原因导致了这种情况,任何帮助都将不胜感激 我的应用程序设置如下: 应用程序域-mydomain.com 网站网址- (注意:如果不清楚的话,mydomain只是我用来回答这个问题的一个例子。) 我的FB.Init

我正在为一个网站异步加载FBJSSDK,该网站具有一些共享功能(将文章、视频、照片等共享到用户的时间线)。在大多数情况下,一切都很正常,但在IE7中,我注意到不断有请求发送到我的channelUrl。他们似乎永远不会结束。它并没有完全破坏网站,但我不想继续发送所有这些请求。我不知道是什么原因导致了这种情况,任何帮助都将不胜感激

我的应用程序设置如下: 应用程序域-mydomain.com 网站网址- (注意:如果不清楚的话,mydomain只是我用来回答这个问题的一个例子。)

我的FB.Init呼叫是

    FB.init({
        appId: XXXXXXXXXXXXX,
        channelUrl: '//' + window.location.hostname + '/channel.html',
        status: true,
        cookie: true,
        xfbml: true
    });

根据文档,您可能必须编辑频道url文件的缓存,以确保不会发生这种情况:

--向下读取到标题为“通道文件”的位置

引述: “尽可能长时间地缓存通道文件非常重要。提供此文件时,您必须发送有效的过期标头,过期时间较长。这将确保浏览器缓存通道文件,这对于流畅的用户体验非常重要。如果没有适当的缓存,跨域通信将变得非常缓慢。”nd用户的体验将严重退化。在PHP中实现这一点的简单方法是:


“通道文件”的意义在于它有助于跨域ajax请求。如果没有缓存,FBAPI会在每次需要从facebook本身插入和执行一些javascript时请求它。如果在客户端的浏览器上缓存它,它只使用空白HTML文件的本地副本,而不是每次请求时都会发出请求。看看跨域ajax请求是如何执行的。我将研究一个好的链接,然后回来描述xdr(跨域请求)

编辑:


如果我一起删除channelUrl,我似乎会得到相同的结果。channelUrl的意义是什么?嘿,就删除所有频道url而言,Facebook必须使用默认值(如果未定义)(假设)来实际回答您的后续问题。
 <?php
 $cache_expire = 60*60*24*365;
 header("Pragma: public");
 header("Cache-Control: max-age=".$cache_expire);
 header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$cache_expire) . ' GMT');
 ?>
 <script src="//connect.facebook.net/en_US/all.js"></script>