请参阅下面的代码,我正在尝试处理 twitter api 调用返回的错误。请记住 Jquery 不处理 jsonp 数据类型,因此超时,下面的代码显然会为不存在的 twitter ID 抛出错误。我想在我的 req.error 方法中捕获该错误并将其显示给用户。但显然,错误是隐藏的,并且确实出现在 console.log('Oh noes!'+msg.error); 这肯定与 jquery 处理 jsonp 类型数据有关。有没有人遇到过同样的情况?有什么解决办法吗?
function findUserInfo(){
var req = $.ajax({
url: "https://twitter.com/users/show.json?id=neverexistID",
dataType : "jsonp",
timeout : 10000
});
req.success(function(msg) {
console.log('Yes! Success!'+msg);
});
req.error(function(msg) {
console.log('Oh noes!'+msg.error);
});
}
答:jsonp调用很特殊,抛出的错误通常是隐藏的,这就是为什么我无法处理错误情况,下面的插件很好地处理了这种情况并解决了我的问题。
jsonp 插件code.google.com/p/jquery-jsonp