我无法获得以下代码。假设ajax调用有效,并且msg ['用户名']被预设为' john'。 我想我对如何将变量传递给我的回调感到困惑。 编辑:我认为我的主要困惑是如何获得' msg' Ajax中的变量。看起来像阿贾克斯有一个“硬连线”#39;如果您想随后使用来自ajax查询的数据,则必须使用成功方法,并且该方法是唯一可以访问ajax调用结果的方法。 这是代码:
<script>
$(document).ready(function(){
function freedome(horace){
$.ajax({
url: "RESPONDERdetails.php",
type: "GET",
dataType: "json",
data:{thing:31}
});
horace(msg);
}
function callbacker(msg){
alert("I am callback");
name = msg["username"];
alert(name);
}
freedome(callbacker(msg));
});
</script>
答案 0 :(得分:1)
您只想使用freedome(callbacker);
。在JavaScript中,函数可以像变量一样对待。所以,我们需要做的就是将函数本身作为参数传递。
这会使horace
成为一个函数,因此当您执行horace(msg);
时,将callbacker
作为参数调用msg
。
此外,msg
永远不会在您的示例中的任何位置声明,而horace(msg);
将在 AJAX调用完成之前运行。你需要在这里使用AJAX调用的回调。
$(document).ready(function(){
function freedome(horace){
$.ajax({
url: "RESPONDERdetails.php",
type: "GET",
dataType: "json",
data:{thing:31},
success: function(msg){
horace(msg);
}
});
}
function callbacker(msg){
alert("I am callback");
name = msg["username"];
alert(name);
}
freedome(callbacker);
});