Is it possible to catch an error when using JSONP with jQuery? I've tried both the $.getJSON and $.ajax methods but neither will catch the 404 error I'm testing. Here is what I've tried (keep in mind that these all work successfully, but I want to handle the case when it fails):

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!");
    });

I've also tried adding the $.ajaxError but that didn't work either:

jQuery(document).ajaxError(function(event, request, settings){
   alert("Error");
});

Thanks in advance for any replies!

推荐答案

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

在搜索他们的bug追踪器后,有a patch个可能是使用超时回调的解决方案.见bug report #3442.如果无法捕获错误,至少可以在等待合理的成功时间后超时.

Jquery相关问答推荐

第一次单击后,Ajax addEventListener 停止工作

jQuery 或 JavaScript 中的$符号是什么意思?

如何使用 jQuery 强制悬停状态?

jQuery:获取数据属性

Jquery each - 停止循环并返回对象

在 jQuery 中,我想删除 div 中的所有 HTML

JSON字符串到JS对象

JQUERY UI Accordion 开始折叠

使用 JavaScript 和 jQuery,跨浏览器处理按键事件 (F1-F12)

未捕获的语法错误:无法在文档上执行querySelector

使用 D3.js(IE、safari 和 chrome)创建 SVG 后,如何保存/导出 SVG 文件?

jQuery - 使用发布数据重定向

datatable jquery - 表头宽度与正文宽度不对齐

如何使用jquery获取点击链接的href?

如何使用 jQuery 格式化电话号码

如何使用 jQuery 检测 IE 8?

Chrome 中的 AJAX 发送选项而不是 GET/POST/PUT/DELETE?

在 Firefox 上开发的 Javascript 在 IE 上失败的典型原因是什么?

粘性侧边栏:向下滚动时固定在底部,向上滚动时固定在顶部

小于 10 给数字加 0