【问题标题】:facebook javascript sdk not posting via ajax using fb.api and .postfacebook javascript sdk 不使用 fb.api 和 .post 通过 ajax 发布
【发布时间】:2011-12-09 02:24:41
【问题描述】:

我有一个 Facebook 应用程序。用户已登录并获得授权。我正在调用 fb.api 将用户名发布到我的文本文件中。警报显示名称。该帖子似乎没有发布到我的 aspx 文件中..

FB.Event.subscribe('edge.remove', function (href, widget) {
    alert("outside");
    FB.api('/me', function (response) {
        alert(response.name);
        var paramsObj = { 'name': response.name };
        $.post("ajax/delete.aspx", paramsObj);
    });
    window.location.replace("Default.aspx");
});

我更新了我的代码,以包括显示封装的 facebook 调用以提供更广泛的图片以及包括 @Lix 更改 [谢谢!]。

【问题讨论】:

  • 试用 Firebug 并密切关注“网络”标签。
  • 试过了...帖子实际上没有被发布...
  • 1) 您不必将密钥用引号括起来。 2) 尝试删除警报 3) 尝试评论 window.location.replace(..)

标签: facebook jquery facebook-javascript-sdk


【解决方案1】:

您可能想尝试的几件事:

  1. 在之前定义您的 post 参数对象,并且只将对象名称放在 jQuery $.post 方法中。
  2. 用引号括住您的 json 键名。

    var paramsObj = { 'name':response.name};
    $.post("ajax/write.aspx", paramsObj );

  3. 使用 firebug/chrome 开发者工具调试 AJAX 请求并查看是否传递了任何值和/或在代码中使用断点来帮助您了解缺少值的位置。

【讨论】:

    【解决方案2】:

    页面在 api 调用/ajax 发布之前被重定向。这是有效的:

    FB.Event.subscribe('edge.remove', function (href, widget) { 
        FB.api('/me', function (response) { 
            var paramsObj = { 'name': response.name }; 
            $.post("ajax/delete.aspx", paramsObj);
            window.location.replace("Default.aspx"); 
        }); 
    }); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多