【问题标题】:FB.api and jquery ajax responseFB.api 和 jquery ajax 响应
【发布时间】:2012-02-27 10:24:15
【问题描述】:

当 jquery ajax() 调用成功返回时,我需要帮助来调用 FB.api 函数。显示 facebook 名称的警报仅适用于 Chrome。与 Firefox 和 IE8 无关。警报(数据)没问题,窗口也重新加载。但是 FB.api 没有。非常感谢您的帮助:

function fb_login() {
    FB.login(function(response) {
      //alert('login');
      if (response.authResponse) {


$.ajax({
    url: 'fb_login.asp',
    data: '',
    type: 'POST',
    dataType: 'text',
    timeout: 10000,
    error: function(){
        alert('Error login Facebook');
    },
    success: function(data){
        alert(data);
        // do something with xml

        FB.api('/me', function(resp) {
            alert(resp.name);
        });        

        window.location.reload();
        //alert('ok');
    }
});  



      }


    }, {scope:'email,publish_stream'});

}

【问题讨论】:

  • “此代码仅适用于 Chrome。与 Firefox 和 IE8 无关。” 嗯?你的意思是它在 Firefox 和 IE8 中不起作用?如果是这样,它如何不起作用?你看到什么结果?你期望看到什么结果?当您使用适当的调试器(Firefox 和 IE8 都有)、设置断点、检查变量等时,您会看到什么?
  • 嗨 T.J.我希望看到警报: alert(resp.name);在 Chrome 中,会显示带有我的 fb 名称的警报。在 Firefox 和 IE 中不显示警报。昨天我试图用 Firebug 进行检查,但我是调试 html 页面的新手,现在我迷路了。警报(数据)正在工作并且窗口重新加载正在工作。只有 FB.api 不起作用
  • @bepi:最好使用“编辑”链接将其添加到问题中。

标签: jquery ajax facebook-javascript-sdk


【解决方案1】:

对 FB.api 的调用是异步的,因此在执行回调函数之前页面会重新加载。试试这个:

FB.api('/me', function(resp) {
    alert(resp.name);
    window.location.reload();
    alert('ok');
});

【讨论】:

    猜你喜欢
    • 2012-06-09
    • 2010-12-06
    • 2013-12-03
    • 2015-03-18
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    相关资源
    最近更新 更多