Javascript $.getJSON既不调用'done()'也不调用'fail()'
我有一个简单的电话:Javascript $.getJSON既不调用'done()'也不调用'fail()',javascript,jquery,Javascript,Jquery,我有一个简单的电话: $.getJSON(serviceAddress) .done(function(result, status) { bo.BusinessObject.DtosToaKoArray(result, resultList); }) .fail(function(result, status) { logger.logError(result); }) .success(function (result,
$.getJSON(serviceAddress)
.done(function(result, status) {
bo.BusinessObject.DtosToaKoArray(result, resultList);
})
.fail(function(result, status) {
logger.logError(result);
})
.success(function (result, status) {
bo.BusinessObject.DtosToaKoArray(result, resultList);
})
.error(function (result, status) {
logger.logError(result);
});
但是没有一个回调函数不调用。我使用firebug检查HttpRequest是否成功,并返回了一些Json
我也尝试过使用$.ajax,但也没用
看来所有的回调都不起作用了 我认为这实际上是一个答案:
恕我直言,这几乎肯定是观测错误。其中一个回调正在被调用,但是它调用的函数bo.BusinessObject.whatever无法正常工作 您可以通过以下方式进行诊断: 在调试器中每个回调的第一个语句上放置断点所有现代浏览器都有内置调试器 …或者,如果您愿意在每次回调的开头放一行,例如:
.done(function() {
console.log("Done");
// ...
})
我认为这实际上是一个答案:
恕我直言,这几乎肯定是观测错误。其中一个回调正在被调用,但是它调用的函数bo.BusinessObject.whatever无法正常工作 您可以通过以下方式进行诊断: 在调试器中每个回调的第一个语句上放置断点所有现代浏览器都有内置调试器 …或者,如果您愿意在每次回调的开头放一行,例如:
.done(function() {
console.log("Done");
// ...
})
所以JavaScript控制台中没有错误?为什么要同时使用.fail和.error,以及.done和.success?并返回一些Json是同一个域还是另一个域?恕我直言,这几乎肯定是一个观察错误。调用了其中一个回调函数,但是调用的函数bo.BusinessObject.whates工作不正常。@zerkms:即使是跨域的,也会调用失败和错误:将控制台日志添加到成功回调中。坦率地说,JavaScript控制台中没有错误吗?为什么要同时使用.fail和.error,以及.done和.success?并返回一些Json是同一个域还是另一个域?恕我直言,这几乎肯定是一个观察错误。调用了其中一个回调函数,但是调用的函数bo.BusinessObject.whates工作不正常。@zerkms:即使是跨域的,也会调用失败和错误:将控制台日志添加到成功回调中。坦率地说,doI在启动done和fail函数时有断点。然后我把这个问题放在这里@mehrandvd:在$.getJSON语句上也放置一个断点,看看它是否被命中。也许您在其他地方还有另一个$.getJSON,它实际上是被触发的。一句话:jQuery将调用其中一个回调。放置console.log会有所帮助。事实上,空函数上的断点似乎不起作用@mehrandvd:在这种情况下,您可以使用调试器;语句,该语句防止函数为空并定义断点:-我在启动done和fail函数时有断点。然后我把这个问题放在这里@mehrandvd:在$.getJSON语句上也放置一个断点,看看它是否被命中。也许您在其他地方还有另一个$.getJSON,它实际上是被触发的。一句话:jQuery将调用其中一个回调。放置console.log会有所帮助。事实上,空函数上的断点似乎不起作用@mehrandvd:在这种情况下,您可以使用调试器;语句,该语句防止函数为空并定义断点:-