我正在使用我们网站上的 FB 注册小部件。
我们的网站允许人们通过注册 CNAME 来自定义他们在我们网站上的页面的 url,因此可以像这样访问页面:
www.example.com/foo 或 foo.mysite.com/
当我嵌入 Facebook 注册小部件并通过规范域 (www.example.com) 访问它时:
- 蓝色的 Facebook 加载进度条出现 [] [] [] ... 几秒钟,然后...
- 注册小部件出现
这是意料之中的——一切都很好。
我在控制台中看到一条消息:
The "fb-root" div has not been created, auto-creating all.js (line 30)
但这是唯一的奇怪之处。
example.com 在我的 FB 应用程序中被定义为“应用程序域”(example.com),并且在“Site Url”字段中的“Website with Facebook Login”下,它设置为http://www.example.com。
当小部件嵌入到 foo.mysite.com 时,就会出现问题。FB 应用程序设置与上述相同。行为与上面提到的几乎相同,除了在第 2 步(出现注册小部件)之后,您仍然可以在后台看到加载进度条。
和以前一样,我仍然在控制台中收到此消息:
The "fb-root" div has not been created, auto-creating all.js (line 30)
不管这个“幻影”加载栏动画如何,小部件本身工作正常,它从 Facebook 正确提取数据,redirect-uri 工作正常(单击时它按预期发布到 redirect-uri,并带有有效的签名数据)。
任何想法是什么导致了这个以及如何解决它?
顺便提一句,
<script src="http://connect.facebook.net/en_US/all.js#appId=xxxxx&xfbml=1">
和
<fb:registration fields="name,email" redirect-uri=http://foo.mysite.com/fb_registration?origin=http://foo.mysite.com/stuff&id=42cc fb_only="false" width="300"> </fb:registration>
当这些问题发生时(工作正常或不正确),是唯一起作用的代码。
更新:
跑步
$(".FB_Loader").hide()
“修复”问题。但是,如果有人知道可能会发生什么样的跨域内容会导致此错误,将不胜感激。