数据不通过ajax代码

时间:2015-09-04 08:05:24

标签: javascript php ajax

我正在使用Facebook登录功能&通过ajax将一些变量传输到其他页面。这个特殊的ajax代码不起作用,数据不通过。但是,我在其他页面上的其他ajax代码效果非常好。

我无法在代码中找到缺陷。

以下是代码:

调用ajax的网页

<script type='text/javascript'>
window.fbAsyncInit = function() {
    FB.init({
        appId      : 'XXXXX',
        status     : false,
        cookie     : true,
        xfbml      : true
    });
}

function Login()
{
    FB.login(function(response) {
    if (response.authResponse) 
    {
        getUserInfo();
    }
    else 
    {
        console.log('User cancelled login or did not fully authorize.');
    }
    },{scope:'email,public_profile'});
}

function getUserInfo() {
    FB.api('/me/permissions', function(response) {
        var permission_response = JSON.stringify(response);
        var permissions = eval('('+permission_response+')');

        $.ajax({
            type: "POST",
            url: "/ajax_save_facebook_data.php",
            data: {permissions:permissions},
            success: function(option){
                alert(option); // Nothing coming here, blank alert
            }
        });

    });
}

AJAX页面

$permissions=$_POST['permissions'];
echo $permissions;

有人可以帮忙吗?我真的很感激。

1 个答案:

答案 0 :(得分:0)

FB.api是asynchrone函数,因此当你进行ajax调用时,你的var权限不存在。

尝试:

function getUserInfo() {
    FB.api('/me/permissions', function(response) {
        var permission_response = JSON.stringify(response);
        var permissions = eval('('+permission_response+')'); 

        $.ajax({
            type: "POST",
            url: "/ajax_save_facebook_data.php",
            data: {permissions:permissions},
            success: function(option){
                alert(option); // Nothing coming here, blank alert
            }
        });       
    });
}