JQuery:ajax请求在同一个函数内返回值“undefined”

时间:2011-07-08 12:21:59

标签: javascript jquery return-value

我有这段代码:

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”返回为“undefined”,但是当我使用Firebug调试时,我看到请求响应是“true”或“false”。该值将作为纯字符串从请求发回,而不是特定格式(JSON,HTML,..)

为什么“returnVal”不返回请求的响应值? 感谢

1 个答案:

答案 0 :(得分:1)

因为您在ajax调用之外使用它,并且由于ajax调用是异步的,因此警报弹出的速度比获得响应的速度快。您必须在returnVal处理程序中使用success变量,以确保获得响应返回的值。