使用JSONP时,如何捕获jQuery $ .getJSON

结合使用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");

});

预先感谢您的任何答复!


智慧大石
浏览 473回答 3
3回答

慕仙森

似乎不返回成功结果的JSONP请求永远不会触发任何事件,成功或失败,无论好坏,这显然是设计使然。搜索他们的错误跟踪器后,有一个补丁程序可能是使用超时回调的解决方案。请参阅错误报告#3442。如果无法捕获该错误,则至少可以在等待一段合理的时间后才能成功。
打开App,查看更多内容
随时随地看视频慕课网APP