다음은 메소드에서 래핑 된 간단한 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 개체를 반환하도록하는 올바른 구문은 무엇입니까?
언제나 감사드립니다. Jon
return 문이없는 제 1 방법은 아무 것도 반환되지 도착입니다. success 메서드에서 return 문을 추가하는 것은 작동하지 않습니다. $ .ajax 호출 앞에 return을 추가하면 responseText 속성을 가진 jhqr 객체를 얻지 만 아직 반환하지 않았을 때 얼마나 안전한지를 확신 할 수 없습니다. – user1231231412
죄송합니다. 나는 처음에 당신의 요지를 완전히 오해했습니다. 비동기 호출에서 복귀 할 수 없다는 것을 이해합니다. 그래서, 참조로 값 유형을 전달할 수있는 방법이 있습니까? 그래서 그 논리에 내 논리를 둘 필요가 없습니까? – user1231231412
로직을 배치 할 필요가 없습니다. 내 답장을 확인하면 데이터를 처리 한 콜백 내부에서 데이터를 처리하기 위해 다른 함수를 호출하는 것을 볼 수 있습니다. 제쳐두고 기술적으로 모든 객체 매개 변수는 Javascript에서 참조로 전달됩니다. –