可能重复:
是否可以在它之外使用 ajax 响应?
我创建了以下 JavaScript 例程,该例程转到 WCF oData 服务并获取一些数据。在成功元素中,我将结果放入结果变量并提醒他们 - 我看到有返回的对象。当我在 ajax 调用之外并在返回结果之前运行第二个警报时,结果变量是“未定义的”。
谁能告诉我哪里出错了?
function retrieveJsonpODataSet(baseUrl, query)
{
var oDataUrl = baseUrl + "?$format=json&$callback=?";
var results;
$.ajax(
{
url: oDataUrl,
contentType: 'application/json; charset=utf-8',
type: 'GET',
dataType: 'jsonp',
async: false,
success:
function (data, textStatus, xhr)
{
results = data.d;
alert(results); // This shows the results
},
error:
function (xhr, textStatus, errorThrown)
{
alert("Query failed.\n\n" + oDataUrl + "\n\n" + errorThrown);
results = null;
}
});
alert(results); // This shows "undefined"
return results;
}
请忽略查询参数 - 我还没有完成例程。
编辑
最初我async:false
在ajax调用中没有。我现在已经添加了,但它不能解决问题。