我是JQuery的新手,但我真的想要了解更多有关它的信息。我编写了一个函数,我期待返回值,但我只是未定义。有人可以告诉我哪里出错了吗?
这是我的代码。
function test(){
$.ajax({
url:"",
dataType:"json",
type:'POST',
data:{countMedia:'true'},
success:function(data){
return data.value;
}
});
}
alert(test()); // returns undefined when it should return an int value
另外,我是否允许在文档内部编写函数?这是我需要使用它的地方。
答案 0 :(得分:1)
$.ajax
是异步的,所以你不应该在AJAX回调中返回一个值。
您应该将回调传递给测试函数,以便在请求完成时执行。
这样的事情:
function test(callback){
$.ajax({
url:"",
dataType:"json",
type:'POST',
data:{countMedia:'true'},
success:function(data){
callback(data.value);
}
});
}
test(function(data) {
alert(data);
});
将数据请求作为参数传递(如您在评论中所述):
function test(requestData, callback){
$.ajax({
url:"",
dataType:"json",
type:'POST',
data:requestData,
success:function(data){
callback(data.value);
}
});
}
test({countMedia:'true'}, function(data) {
alert(data);
});
答案 1 :(得分:0)
这就是AJAX的工作方式(异步)。
function test(){
$.ajax({
url:"", // No url found here
dataType:"json",
type:'POST',
data:{countMedia:'true'},
success:function(data){
alert(data.value)
}
});
}
test();