Javascript 连接两个Ajax请求
我对JS还是个新手,在连接两个ajax请求时遇到了问题。第一点很简单: 向fb询问用户id:Javascript 连接两个Ajax请求,javascript,ajax,function,callback,facebook-javascript-sdk,Javascript,Ajax,Function,Callback,Facebook Javascript Sdk,我对JS还是个新手,在连接两个ajax请求时遇到了问题。第一点很简单: 向fb询问用户id: FB.api('/me', function(user) { if (user) { } }); 在自定义fb对象上发布自定义facebook操作: function myfunction() { FB.api( '/me/fb:myaction', 'post', { myo
FB.api('/me', function(user) {
if (user) {
}
});
在自定义fb对象上发布自定义facebook操作:
function myfunction()
{
FB.api(
'/me/fb:myaction',
'post',
{ myobject: '/object/<%=@obj.id%>' },
function(response) {
if (!response || response.error) {
console.log('Error occured');
} else {
console.log('FB POST was successful! Action ID: ' + response.id);
$.ajax({
type: "POST",
url: "/record_action",
data: { facebook_id: "John", item_id: "<%= @candidate.id %>" },
dataType: 'json',
success: function(data) {
console.log(data);
}
}).done(function( msg ) {
console.log(msg);
});
}
});
}
并尝试将myvar传递给myfunction调用,因为它不起作用。我相信这是非常琐碎的。如何做到这一点?更好的答案是使用闭包(可能是第一个查询的成功函数)捕获此答案,并在闭包内完成其余工作
效率较低(但在学习过程中可能更实用)的方法是将数据放在两个调用之间的全局变量中。但是JavaScript中的全局变量有很多问题,如果您不想完全控制页面上运行的所有脚本,就应该像瘟疫一样避免这些问题。您所说的“似乎不起作用”到底是什么意思?是的。哈。完全不起作用。
FB.api('/me', function(user) {
if (user) {
myvar = user.facebook_id
}
});