javascript – JQuery 1.7中的JSONP错误

注意:我已经检查了其他答案,包括
this question re: a pre-jQuery 1.5 JSONP error issue that has now been resolved.我正在使用JQuery 1.7,我相信不会遇到这个问题.

截至JQuery 1.5 proper error functions are possible with JSONP(参见’jqXHR对象’).但是,错误功能似乎没有触发.

$.getJSON(url, function(response) { 
    console.log(response)   
}).error( function() { console.log('Error occurred.') } )   

查看Chrome Dev Tools,JSONP请求会生成以下错误:

GET https://twitter.com/status/user_timeline/somepretendusername.json?count=2&callback=jQuery171005595548846758902_1334772179012&_=1334772179132 400 (Bad Request)

但是.error()回调似乎没有运行.使用JSONP进行正确的错误处理需要什么?

最佳答案 只有在请求出错时才会触发错误功能.请求正在进行,但如果用户名不存在,Twitter将返回400.我尝试使用假的用户名并得到你做的相同的响应,但后来我使用了我的用户名,它就像一个冠军.

[编辑]我看到你只是在问如何使用JSONP处理错误.无论出于何种原因,似乎jQuery没有很好的错误处理.我确实找到了一个承诺为JSONP提供实际错误处理的插件.看看here.

[edit2]检查出来,它的工作原理!

$(document).ready(function() {
    var url = 'https://twitter.com/status/user_timeline/thisisnotarealtwitterhandle.json?count=2&callback=?';
    var jqxhr = $.jsonp({
        url: url,
        success: function(response) {
            console.log(response)
        }
    }).fail(function() { console.log('error'); });
});
点赞