首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在使用JSONP时捕获jQuery $.getJSON (或数据类型设置为‘JSONP’的$.ajax )错误?

如何在使用JSONP时捕获jQuery $.getJSON (或数据类型设置为‘JSONP’的$.ajax )错误?
EN

Stack Overflow用户
提问于 2008-11-21 19:48:36
回答 7查看 89.7K关注 0票数 76

jQuery中使用JSONP时有可能捕捉到错误吗?我已经尝试了$.getJSON和$.ajax方法,但这两个方法都不能捕获我正在测试的404错误。以下是我尝试过的方法(请记住,这些方法都工作得很成功,但我希望在失败的情况下进行处理):

代码语言:javascript
复制
jQuery.ajax({
    type: "GET",
    url: handlerURL,
    dataType: "jsonp",
    success: function(results){
        alert("Success!");
    },
    error: function(XMLHttpRequest, textStatus, errorThrown){
        alert("Error");
    }
});

还有:

代码语言:javascript
复制
jQuery.getJSON(handlerURL + "&callback=?", 
    function(jsonResult){
        alert("Success!");
    });

我也尝试添加$.ajaxError,但也不起作用:

代码语言:javascript
复制
jQuery(document).ajaxError(function(event, request, settings){
   alert("Error");
});

提前感谢您的回复!

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-11-21 20:27:54

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

在搜索了他们的bug跟踪器后,找到了a patch,这可能是使用超时回调的一个可能的解决方案。参见bug report #3442。如果无法捕获错误,则至少可以在等待一段合理的时间后超时以获得成功。

票数 51
EN

Stack Overflow用户

发布于 2013-09-29 15:49:40

Here是我对类似问题的广泛回答。

代码如下:

代码语言:javascript
复制
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!'); });
票数 53
EN

Stack Overflow用户

发布于 2013-09-05 23:46:46

我知道这个问题有点陈旧,但我没有看到一个简单的解决问题的答案,所以我想我应该分享我的“简单”解决方案。

代码语言:javascript
复制
$.getJSON("example.json", function() {
      console.log( "success" );
}).fail(function() { 
      console.log( "error" ); 
}); 

我们可以简单地使用.fail()回调来检查是否发生了错误。

希望这能有所帮助:)

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/309953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档