【发布时间】:2014-03-20 01:45:38
【问题描述】:
在这个SO post 中,我学习了如何从 AJAX 调用中获取返回值:
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 中,日志显示没有从 $.ajax 调用中调用该 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)吗?? -
数据不是第一次调用返回的真假值吗?
-
是的,我正在调用函数 else { //继续,因为数据准备好了 callUpdateGrid(input); }
-
好吧,您将不得不使用开发人员控制台来准确了解正在发生的 HTTP 事务以及响应的样子。您还没有描述
console.log()调用实际打印的内容,或者如果您有,我看不到它。
标签: javascript jquery ajax wcf