jQuery 1.5 and higher have better support for error handling with JSONP requests. However, you need to use the $.ajax
method instead of $.getJSON
. For me, this works:
var req = $.ajax({
url : url,
dataType : "jsonp",
timeout : 10000
});
req.success(function() {
console.log('Yes! Success!');
});
req.error(function() {
console.log('Oh noes!');
});
The timeout seems to do the trick and call the error handler, when there is no successful request after 10 seconds.
I did a little blogpost on this subject as well.