“使用Facebook的示例代码加载资源失败”

时间:2013-03-27 20:50:11

标签: javascript facebook facebook-javascript-sdk

我正在尝试从Facebook JS SDK的文档中运行第一个示例。我创建了一个新的应用程序,创建了一个名为“facebookTest.html”的空白文档,粘贴在示例的代码中,并插入新应用程序的App ID。代码如下:

<html>
<head>
<title>Login with facebook</title>
<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    // init the FB JS SDK
    FB.init({
      appId      : 'my app ID', // App ID from the App Dashboard
      status     : true, // check the login status upon init?
      cookie     : true, // set sessions cookies to allow your server to access the session?
      xfbml      : true  // parse XFBML tags on this page?
    });

    // Additional initialization code such as adding Event Listeners goes here

  };

  // Load the SDK's source Asynchronously
  // Note that the debug version is being actively developed and might 
  // contain some type checks that are overly strict. 
  // Please report such bugs using the bugs tool.
  (function(d, debug){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = document.location.protocol+"//connect.facebook.net/en_US/all" + (debug ? "/debug" : "") + ".js";
     ref.parentNode.insertBefore(js, ref);
   }(document, /*debug*/ false));
</script>

当我加载页面时,在Javascript控制台上我收到以下错误消息:

Failed to load resource

我做错了什么?

编辑:当我在document.location.protocol之前添加"//connect.facebook.net/..."时,按照建议here,屏幕保持空白,控制台显示以下内容:

GET file://connect.facebook.net/en_US/all.js  

所有这些代码都应该这样做吗?还是它还在失败?

6 个答案:

答案 0 :(得分:40)

这里有一些错误:

  1. 需要将js.src分配更改为: js.src="https://connect.facebook.net/en_US/all.js";

  2. Facebook不再支持从本地文件发出的JS SDK调用,该脚本必须在http://https:// URI的文件上运行,符合this bug report on Facebook 。我需要将文件上传到Web服务器,相应地更改画布URL,然后重新测试。

答案 1 :(得分:14)

只需停用adblock, 它对我有用

答案 2 :(得分:6)

首先,您需要将http或https附加到js.src url

其次,你需要在服务器上托管你的html文件。

答案 3 :(得分:0)

转到Facebook开发者并添加您的网站域名并获取ID并粘贴到下面:

 appId : 'my app ID', // App ID from the App Dashboard

答案 4 :(得分:0)

如果您的URL包含诸如“ advert”,“ ad”,“ doubleclick”,“ click”或类似内容之类的字词……

例如:

  • GET googleads.g.doubleclick.net/pagead/id
  • static.doubleclick.net/instream/ad_status.js

...然后,广告拦截器将对其进行拦截。

Ref:Getting "net::ERR_BLOCKED_BY_CLIENT" error on some AJAX calls

答案 5 :(得分:0)

添加另一件我在这里没有看到的东西:如果您正在Firefox中进行调试,请在开发时禁用增强跟踪保护和Facebook容器。