我正在使用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;
有人可以帮忙吗?我真的很感激。
答案 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
}
});
});
}