在這種SO post我學會了如何從AJAX調用得到一個返回值:jQuery的阿賈克斯調用從不調用方法
function CallIsDataReady(input) {
$.ajax({
url: "http://www.blah.com/services/TestsService.svc/IsDataReady",
type: "GET",
contentType: "application/json; charset=utf-8",
data: input,
dataType: "json",
success: function (data) {
if (!data) {
setTimeout(function (inputInner) { CallIsDataReady(inputInner); }, 1000);
}
else {
//Continue as data is ready
callUpdateGrid(input);
}
}
});
}
$(document).ready(function() {
var input = { requestGUID: "<%=guid %>" };
CallIsDataReady(input);
});
該函數調用其Web服務至極不會返回true。問題是,以下callUpdateGrid內,記錄顯示,該Web服務方法是沒有得到從$就電話叫:
function callUpdateGrid(input) {
console.log(input);
$.ajax({
url: "http://www.blah.com/services/TestsService.svc/GetContactsDataAndCountbyGUID",
type: "GET",
contentType: "application/json; charset=utf-8",
data: input,
dataType: "json",
success: function (data) {
var mtv = $find("<%= RadGrid1.ClientID %>").get_masterTableView();
console.log(data);
mtv.set_dataSource(data.d.Data);
mtv.dataBind();
}
});
}
任何人都知道什麼是錯的?
在頂層函數中,你有'callUpdateGrid(input)' - 不應該是'callUpdateGrid(data)'?? – Pointy
數據不是第一次調用返回的真/假值嗎? – user2471435
是的,我正在調用函數else { //繼續數據準備 callUpdateGrid(input); } – user2471435