在jQuery中使用JSONP时有可能捕捉到错误吗?我已经尝试了$.getJSON和$.ajax方法,但这两个方法都不能捕获我正在测试的404错误。以下是我尝试过的方法(请记住,这些方法都工作得很成功,但我希望在失败的情况下进行处理):
jQuery.ajax({
type: "GET",
url: handlerURL,
dataType: "jsonp",
success: function(results){
alert("Success!");
},
error: function(XMLHttpRequest, textStatus, errorThrown){
alert("Error");
}
});
还有:
jQuery.getJSON(handlerURL + "&callback=?",
function(jsonResult){
alert("Success!");
});
我也尝试添加$.ajaxError,但也不起作用:
jQuery(document).ajaxError(function(event, request, settings){
alert("Error");
});
提前感谢您的回复!
发布于 2008-11-21 20:27:54
似乎不返回成功结果的JSONP请求永远不会触发任何事件、成功或失败,无论是好是坏,这显然是设计出来的。
在搜索了他们的bug跟踪器后,找到了a patch,这可能是使用超时回调的一个可能的解决方案。参见bug report #3442。如果无法捕获错误,则至少可以在等待一段合理的时间后超时以获得成功。
发布于 2013-09-29 15:49:40
Here是我对类似问题的广泛回答。
代码如下:
jQuery.getJSON(handlerURL + "&callback=?",
function(jsonResult){
alert("Success!");
})
.done(function() { alert('getJSON request succeeded!'); })
.fail(function(jqXHR, textStatus, errorThrown) { alert('getJSON request failed! ' + textStatus); })
.always(function() { alert('getJSON request ended!'); });
发布于 2013-09-05 23:46:46
我知道这个问题有点陈旧,但我没有看到一个简单的解决问题的答案,所以我想我应该分享我的“简单”解决方案。
$.getJSON("example.json", function() {
console.log( "success" );
}).fail(function() {
console.log( "error" );
});
我们可以简单地使用.fail()
回调来检查是否发生了错误。
希望这能有所帮助:)
https://stackoverflow.com/questions/309953
复制相似问题