一尘不染

使用JSONP时,如何捕获jQuery $ .getJSON(或数据类型设置为“ jsonp”的$ .ajax)错误?

javascript

结合使用JSONP和jQuery时是否可能捕获错误?我已经尝试了$ .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");
});

预先感谢您的任何答复!


阅读 284

收藏
2020-05-01

共1个答案

一尘不染

似乎不返回成功结果的JSONP请求永远不会触发任何事件,成功或失败,无论好坏,这显然是设计使然。

搜索他们的错误跟踪器后,有一个补丁程序可能是使用超时回调的可能解决方案。请参阅错误报告#3442。如果您无法捕获该错误,则至少可以在等待一段合理的时间后才能成功。

2020-05-01