【问题标题】:How use Facebook Javascript SDK response in Ajax request?如何在 Ajax 请求中使用 Facebook Javascript SDK 响应?
【发布时间】:2023-03-21 20:40:02
【问题描述】:

假设我有以下代码返回一个 Javascript 对象,我可以在 Firebug 的控制台中读取该对象:

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 字符串。那是对的吗?我在正确的轨道上吗?

【问题讨论】:

    标签: ajax json facebook-javascript-sdk javascript-objects


    【解决方案1】:

    一种可能的方式:

    • 在您的 javascript 中定义一个全局变量,例如var myVar1;
    • 在您的 FB.api 回调中将 apireponse 设置为全局变量(即您调用 console.log 的位置)
    • 在您的 ajax fcn 中引用 var myVar1。

    【讨论】:

    • 如果我这样做,alert(myVar1),它只会返回“未定义”。我错过了什么吗?
    • 你当时设置了值吗?
    【解决方案2】:

    您可以将 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);
            }
        });
    });
    

    【讨论】:

    • 最烦人的问题是最容易解决的。工作一种享受。谢谢。
    猜你喜欢
    • 2016-07-24
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多