下面是一個簡單的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中的引用傳遞的。 –