在getJSON()jquery中处理404错误请求

时间:2013-02-25 10:46:32

标签: jquery rest jsonp

我有以下代码,我正在使用JSONP从站点检索JSON。我想处理像404错误请求的错误代码。以下对我不起作用。

$.getJSON('https://xyz.com/search?jsonp-callback=?', function(data) {

  alert("success");
})
.success(function() { alert("success 2"); })
.error(function() { alert("error occurred "); })
.complete(function() { alert("Done"); });

成功和完整的方法正在运行,但错误方法不起作用。

3 个答案:

答案 0 :(得分:5)

尝试使用fail代替error(请参阅Deferred doc)。

答案 1 :(得分:4)

$.getJSON('https://xyz.com/search?jsonp-callback=?', function(data) {
  alert("success");
})
.success(function() { alert("success 2"); })
.error(function(event, jqxhr, exception) {
    if (jqxhr.status == 404) {
              alert("error occurred ");   
    }
})
.complete(function() { alert("Done"); });

以上代码可能会对您有所帮助。

答案 2 :(得分:1)

这个主题有答案:https://stackoverflow.com/a/14371049/685925

由于您正在使用JSONP,因此不会调用jQuery创建的回调,因此永远不会调用失败回调。这是JSONP的正常行为,唉。