2011-09-07 70 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