我习惯于进行 AJAX 调用,但由于这些调用是异步执行的,因此在我的代码中,我不确定该调用是否已经完成。所以在下面的代码示例中,当我调用 alert(url) 时,可能是 lat 和 lng 变量尚未填充。
因此,我希望我的代码在继续之前等待结果,而不是进行 AJAX 调用,因此是一个同步请求。
我该怎么做?
var url='';
if ($('select[name="countryselect"]').val() != '0') { url += '&country=' + $('#countryselect option:selected').text(); }
if ($('#<%=tbCity.ClientID%>').val() != '') {
url += '&distance=' + $('#<%=ddlDistance.ClientID%>').val();
$.ajax({
type: "GET",
url: "/service.svc/getlocs/?cid=" + countryid
+ "&c=" + $('#<%=tbCity.ClientID%>').val(),
data: "",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
url += '&lat=' + msg[0].value;
url += '&lng=' + msg[1].value;
}
});
}
alert(url);