2011-09-07 67 views
0

如何返回jQuery的阿贾克斯成功结果如何返回jQuery的阿贾克斯成功结果

function name (LevelId) { 
    var passobj = null; 
    $.ajax({ 
     url: 'GetValues' + '/?LevelId=' + LevelId, 
     type: "POST", 
     dataType: "json", 
     contentType: 'application/json', 
     async: false, 
     success: function (result) { 
      passobj = result; 
     }, 
     complete: function() { }, 
     error: ServiceFailed// When Service call fails 
    }); 
    return passobj; 
} 

    returned =name(id); 
+0

相反的是@Niko和@Jim说,你的代码应该工作,考虑到你正确设置'异步= FALSE'。你可以检查返回的JSON对象是否正确? – Razor

+0

对此不起作用的是什么? – yoozer8

+0

实际上通过使用alert(返回)它显示为[object Object]。 文我试着把这个值下拉,下拉是空的。 所以我有一个怀疑在这个功能是否返回 – user930453

回答

0

这是行不通的,因为执行异步Ajax请求是什么意思,你的函数返回null - 成功的事件处理程序直到检索到服务器的响应才会调用(可能需要一些时间)。您将需要使用事件重构您的代码。

function name(id, callback) { 
    $.ajax({ 
     ... 
     success: callback 
    }); 
} 

name(17, function(returned) { 
    // work with the response... 
}); 

编辑:对不起,没注意到你设置async: false - 在这种情况下,你的代码实际上应该是工作的罚款,如果我不要再错过任何东西。

3

这为我工作

ajaxCall(urls, data).success(function(data){ 
    // get the result 
}); 

function ajaxCall(url, data){ 
    var result; 

    return $.ajax({ 
     type: 'POST', 
     url: url, 
     data: data 
    }); 
} 
+1

请注意你的代码格式在未来:-) – kleopatra