【问题标题】:"Failed to load resource" using Facebook's example code使用 Facebook 的示例代码“加载资源失败”
【发布时间】:2013-03-18 03:26:00
【问题描述】:

我正在尝试运行 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

我做错了什么?

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

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

这就是所有这些代码应该做的吗?还是还是失败了?

【问题讨论】:

  • 检查您的 AdBlock! :)

标签: javascript facebook facebook-javascript-sdk


【解决方案1】:

只需禁用广告拦截, 它对我有用

【讨论】:

  • 嘿,简单的最佳答案 =)
  • 真的是 Adblock chrome 扩展阻止它,谢谢。
  • 在 Firefox 中,您需要禁用 facebook 容器和跟踪保护
【解决方案2】:

这里有几个问题:

  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。我需要将文件上传到网络服务器,相应地更改画布 URL,然后重新测试。

【讨论】:

  • IN 对指针 2 的解释。这是因为 init 代码中的 js.src 是协议相关的。因此,如果您正在访问本地文件。它将尝试通过文件访问 fb sdk: 和错误
  • 是的,我发现如果我以 localhost/FacebookApp 而不是 file://c:\wamp\www\FacebookApp\index.html 的身份访问文件,我可以在本地 Web 服务器(例如 WAMP)上对其进行测试。
  • 是的。那是因为您的 js.src 可能指向 "//connect.facebok.... 它是协议相关的。所以。如果您在没有服务器的情况下在本地访问您的页面,即使用 file:// ,那么 facebook init 会尝试从 file://connect.facebook.net.... 加载 javascript sdk,这不会发生。所以它不起作用。另外.. 最好让 js.src 指向 //connect.facebook.net/en_US/all.js 以便处理 http 请求。无论如何..我今天学到了,所以想分享一下。
  • 我遇到了同样的问题。但是现在当它应该显示登录表单时,我收到此错误消息:“无法加载 URL:此 URL 的域不包含在应用程序的域中。要能够加载此 URL,请添加所有域和子域您的应用程序到您的应用程序设置中的应用程序域字段。“有关如何解决该问题的任何想法。我那里有正确的网址。提前致谢。
  • 记得检查您的广告拦截! ;)
【解决方案3】:

首先你需要在 js.src url 中附加 http 或 https

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

【讨论】:

    【解决方案4】:

    如果您的网址包含诸如“广告”、“广告”、“双击”、“点击”或类似的字词……

    例如:

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

    ...然后广告拦截器将阻止它。

    参考:Getting "net::ERR_BLOCKED_BY_CLIENT" error on some AJAX calls

    【讨论】:

      【解决方案5】:

      转到 Facebook 开发人员并添加您的网站域并获取 id 并粘贴到下面:

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-03-13
          • 1970-01-01
          • 2021-12-24
          • 2012-07-24
          • 2018-01-15
          • 2013-02-26
          • 2019-05-28
          • 2016-06-24
          相关资源
          最近更新 更多