我有这段代码:
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”不返回请求的响应值? 感谢
答案 0 :(得分:1)
因为您在ajax调用之外使用它,并且由于ajax调用是异步的,因此警报弹出的速度比获得响应的速度快。您必须在returnVal
处理程序中使用success
变量,以确保获得响应返回的值。