2011-07-08 113 views
0

裏面我有這樣一段代碼:JQuery的:Ajax請求返回值「未定義」相同的功能

function CallAPI(paramString) { 
    var returnVal; 
    var jqxhr = $.get(
     "http://url/../" 
    ) 
    .success(function (data) { returnVal = data; }) 
    .error(function (xhr, ajaxOptions, thrownError) { alert("Error!\n xhr.status = [" + xhr.status + "]\n xhr.statusText: [" + xhr.statusText + "]\najaxOptions = [" + ajaxOptions + "]"); }) 
    .complete(function() { alert("Request complete."); }); 

    alert("returnVal: [" + returnVal+ "]"); 
} 

在最後警報的「returnVal」返回爲「不確定」,但是當我使用Firebug調試,我看到請求響應是「真」還是「假」。該值是從請求發回的純字符串,而不是特定的格式(JSON,HTML,..)

爲什麼「returnVal」不返回請求的響應值? 謝謝

回答

1

因爲您在ajax調用之外使用它,並且由於ajax調用是異步的,所以警報彈出速度比獲得響應的速度快。您必須使用success處理程序中的returnVal變量,以確保獲得響應返回的值。

+0

是不是我所擁有的?:.success(函數(數據){returnVal = data;}) – user706058

+0

移動處理程序中的警報呼叫,你會得到我的意思:) – devnull

+0

啊好的,謝謝: ) – user706058