2011-08-26 66 views
0

假如我有下面的代码返回一个Javascript对象,我可以在Firebug的控制台读取:如何在Ajax请求中使用Facebook Javascript SDK响应?

FB.api('/me',function(apiresponse){ 
    console.log(apiresponse); 
}); 

我怎么能那么在一个Ajax请求使用的数据来自apiresponse在同一页上?

目前我的Ajax请求如下所示:

$.ajax({ 
    // CodeIgniter URL 
    url: "<?=site_url?>('login/add_fb_users'); ?>", 
    type: 'POST', 
    data: apiresponse, 
    success: function(data) { 
     alert(data); 
    } 
});  

我不是很了解的Javascript,但看完周边的对象物使我觉得我有JavaScript对象转换为JSON字符串。那是对的吗?我在正确的轨道上吗?

回答

1

你可以把你的AJAX调用的处理程序,如下面的API调用内部..

FB.api('/me', function(apiresponse){ 
    console.log(apiresponse); 

    $.ajax({ 
     // CodeIgniter URL 
     url: "<?=site_url?>('login/add_fb_users'); ?>", 
     type: 'POST', 
     data: apiresponse, 
     success: function(data) { 
      alert(data); 
     } 
    }); 
}); 
+0

最烦人的问题是最容易解决的问题。作品一种享受。谢谢。 –

0

一种可能的方式:

  • 在JavaScript,例如定义一个全局变量var myVar1;
  • 在您的FB.api回调中设置apireponse到全局变量(即您呼叫console.log)
  • 在您的ajax fcn中引用var myVar1。
+0

如果我这样做,'警报(myVar1)',它只是返回“未定义”。我错过了什么吗? –

+0

你在那一刻设置了价值? –