下面是我的代码
var tweetid = '133450847156838400';
$.ajax({
dataType: "jsonp",
url: "http://api.twitter.com/1/statuses/show/"+tweetid+".json?include_entities=1&callback=?",
error:function(xhr, testStatus, error) {
alert("error");
},
success: function(html){
alert("success");
}
});
Chrome 控制台显示 404 错误响应,但 jQuery 无法触发警报。
我添加
$(document).ajaxError(function(event, request, settings){
alert('error');
});
什么也没发生。有人可以帮我处理这个错误,因为我必须检测这条推文是否被删除。
最佳答案
我非常确定(不完全),dataType jsonp 无法正确处理非 200 http 状态代码。原因是 jsonp 确实有效。维基百科页面对此有更好的解释:http://en.wikipedia.org/wiki/JSONP ,但基本上,jsonp 相当于使用您给出的 url 将脚本元素附加到页面上。脚本元素的主体是函数调用。如果你得到任何状态码 != 到 200,那么该主体将不存在,并且不会调用任何函数(最终调用回调函数)。
因此,如果您继续使用 jsonp,那么您将需要某种超时来等待响应并期望请求失败或其他某种方法。
关于jquery 无法使用 twitter api 处理 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8081565/