JQuery:同一函数内的 ajax 请求返回值"undefined"



我有这段代码:

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"不返回请求的响应值?由于

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

最新更新