javascript - Facebook 在用户登录之前给出响应

标签 javascript ajax facebook facebook-javascript-sdk

我正在尝试让 Facebook 登录在我的网站上运行。我有以下 Javascript/AJAX 代码:

var antwoord="";
var message="";

function myFacebookLogin() {
    FB.login(function() { 
    FB.api('/me','GET',{"fields":"id,email,birthday,gender,first_name,last_name"}, function(response) {
        antwoord = response;
    })
}, {scope:'email,user_birthday'});

$.ajax({
    url:  '/dev/php/registerfb.php',
    type: 'POST',
    data: {firstname:antwoord.first_name,lastname:antwoord.last_name,email:antwoord.email,gender:antwoord.gender,date:antwoord.birthdate,id:antwoord.id},
    success: function(response) {
        console.log(response);
    },
    error: function(error) {
        console.log(error);
    }
})
}

问题似乎是 Facebook 在用户登录之前给出响应。这样,即使没有任何响应,AJAX 代码也会被触发。我可能在某个地方犯了一个愚蠢的错误。

最佳答案

是的,没错,ajax 在收到登录响应之前被调用
解决这个问题的一种方法是将 ajax 调用包装在函数中
然后在收到响应后调用该函数

var antwoord="";
var message="";

function myFacebookLogin() {
    FB.login(function() { 
        FB.api('/me', 'GET', {"fields":"id,email,birthday,gender,first_name,last_name"},
        function(response) {
            antwoord = response;
            callTheAjax();
        })
    }, {scope:'email,user_birthday'});

    function callTheAjax() {
        $.ajax({
            url:  '/dev/php/registerfb.php',
            type: 'POST',
            data: {firstname:antwoord.first_name,lastname:antwoord.last_name,email:antwoord.email,gender:antwoord.gender,date:antwoord.birthdate,id:antwoord.id},
            success: function(response) {
                console.log(response);
            },
            error: function(error) {
                console.log(error);
            }
        });
    }
}

关于javascript - Facebook 在用户登录之前给出响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42972704/

相关文章:

javascript - 如何使用 Javascript/JQuery 模拟 POST 上传

asp.net - Facebook 评论审核困难

javascript - 替换为 javascript 中的 regExp

javascript - 不知道如何读取这个 json 格式

javascript - Ajax 获取响应数据 undefined

javascript - React useContext 不会将值传递给深度嵌套的子级

ajax - 从 ajax 监听器方法内部发送重定向

php - JQuery AJAX PHP post方法问题

javascript - 墨水Filepicker被Facebook IOS应用中的墙链接破坏了

android facebook api 发布