3

我正在尝试运行以下代码片段:

var myVar1 = $.getJSON('myurl', function(json) {
    console.log("debug1", json);
});
var myVar2 = $.getJSON('myurl2', function(json2) {
    console.log("debug2", json2);
});

而且我从未在控制台日志中看到“debug2”条目。当我检查myVar2请求完成后的状态时,我看到它填充了正确的数据。当我在第二个请求.complete()的末尾附加一条语句时,该函数将正确触发。.getJSON().complete()

使用 jQuery 1.7.2 和最新的谷歌浏览器稳定版。为什么第二个回调函数不会触发?

4

1 回答 1

4

尝试 :

var myVar2 = $.getJSON('myurl2').success(function(){
    console.log("debug2 - success");
}).error(function(){
    console.log("debug2 - error");
});

您可能会看到错误消息而不是成功。我猜想“myurl2”不存在,尽管它可能确实存在,但脚本会发出带有错误标题的 HTTP 响应。我认为 JSON 解码失败也会触发错误回调。

于 2012-05-27T19:01:45.747 回答