注意:我已经检查了其他答案,包括
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'); });
});