Javascript jQuery1.7中的JSONP错误
注意:我检查了其他答案,包括。我使用的是jQuery1.7,我相信它不会受到这个问题的影响 截至(请参阅“jqXHR对象”)。但是,错误函数似乎没有启动Javascript jQuery1.7中的JSONP错误,javascript,jquery,cross-domain,jsonp,Javascript,Jquery,Cross Domain,Jsonp,注意:我检查了其他答案,包括。我使用的是jQuery1.7,我相信它不会受到这个问题的影响 截至(请参阅“jqXHR对象”)。但是,错误函数似乎没有启动 $.getJSON(url, function(response) { console.log(response) }).error( function() { console.log('Error occurred.') } ) 查看Chrome开发工具,JSONP请求生成以下错误: GET https://twitt
$.getJSON(url, function(response) {
console.log(response)
}).error( function() { console.log('Error occurred.') } )
查看Chrome开发工具,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提供实际的错误处理。看看吧 [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'); });
});
使用
.fail()
回调是否会得到相同的结果?@KevinB谢谢。唉。fail()似乎也不起作用。谢谢,但我使用的是真正的用户名。我的问题是如何正确处理错误,而不是如何避免400错误。@Naller我想真正的问题是400的状态码是否真的会在jQuery中触发错误。您可以使用。始终回调并获取请求的状态码,然后如果状态码为400,则执行此操作,否则执行此操作。是的,我想我更好地理解您的问题。它似乎确实源于这样一个事实,即当$.getJSON不成功时会抛出一个错误。