下面是一个简单的ajax调用包装在方法中。javascript jquery ajax成功返回对象
MyNS.GetStringList = function (successCallback, failedCallback) {
var methodUrl = serverUrl + "/GetStringList";
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: methodUrl, // Location of the service
data: {}, //Data sent to server
beforeSend: function (XMLHttpRequest) {
//ensures the results will be returned as JSON.
XMLHttpRequest.setRequestHeader("Accept", "application/json");
},
success: successCallback,
error: failedCallback
});
}
以下是调用上述方法的方法。
function GoGetTheStringList() {
var stringList;
stringList = MyNS.GetStringList(function (data) { return data.d; }, function (XmlHttpRequest, textStatus, errorThrown) {
alert("error");
});
alert(reasonsDictionary); // THIS IS UNDEFINED!
}
使第一个方法返回data.d对象的正确语法是什么?
一如既往的感谢! 乔恩
自从我第方法没有return语句,没有东西返回。在成功方法中添加return语句也不起作用。如果我在$ .ajax调用之前添加一个返回值,我得到具有responseText属性的jhqr对象,但不知道它有多安全,因为它可能还没有返回。 – user1231231412
对不起。起初我完全误解了你的观点。我知道你不能从异步调用返回。那么,有没有办法通过引用来传递一个值类型,所以我不必把我的逻辑放在那个调用中? – user1231231412
你不需要把你的逻辑放在那里。如果你检查我的回复,你会看到我在回调中调用另一个函数来处理我的数据,解包后。另外,技术上所有的对象参数都是通过Javascript中的引用传递的。 –