0

我正在为我的项目使用 facebook API,并在 var 中以下列方式获取一些数据mydata

if (response.status === "connected")
        {
            LodingAnimate(); //Animate login
            FB.api('/me?fields=movies,email', function(mydata) { //--
            console.log(mydata);
              if(data.email == null)
              {
                 alert("You must allow us to access your email id!");
                 ResetAnimate();
             }
   }

我对此代码没有任何问题。但我想使用 ajax 调用发送这些数据来处理并插入数据库。

我的ajax调用:

function AjaxResponse()
 {
    var send=document.ge(mydata)      **//Here I want to fetch mydata from previous code**
    var datas = document.elements['id'].value;
    var s = 'connect=1'; 
     $.ajax({
    type: "POST",
    url: "process_facebook.php",
    data: s,send                   **//Is this correct way to send s and send togather? I have tried with only 's' which works fine but dont know about both togather**
    }).done(function(result) {
    $("#fb-root").html(result);
    });
   }

有人可以协助如何在 javascript 函数中获取 mydata 并查看代码。

4

1 回答 1

1

由于您进行的 Facebook API 调用是异步的,因此您无法ge从函数中返回值。

相反,使用回调,就像 Facebook 和其他人一样。见下文。

另外,隐藏在代码片段中的第二个不相关问题的答案是“不,这不是你这样做的方式”。我也在下面为您提供了如何执行此操作的指示。

function AjaxResponse()
{
    // Callback here----v arg ---v
    document.ge(mydata, function(send) {
        var datas = document.elements['id'].value;
        $.ajax({
            type: "POST",
            url: "process_facebook.php",
            data: {
               connect: 1,
               paramname: mydata      // <=== I don't know what the name of this param is
            }
        }).done(function(result) {
        $("#fb-root").html(result);
    });
}

..并让您的代码在 Facebook 调用调用回调时调用回调。

function ge(data, callback) {
    // ...
    if (response.status === "connected") {
        LodingAnimate(); //Animate login
        FB.api('/me?fields=movies,email', function (mydata) { //--
            console.log(mydata);
            if (data.email == null) {
                alert("You must allow us to access your email id!");
                ResetAnimate();
            }
            else {
                callback(data); // <=== Trigger the callback
            }
        }
       // ...
    }
    // ...
}
于 2013-08-07T11:51:53.947 回答