相关疑难解决方法(0)

jQuery ajax(jsonp)忽略超时并且不会触发错误事件

为了添加一些基本的错误处理,我想重写一段使用jQuery的$ .getJSON来从Flickr中提取一些照片的代码.这样做的原因是$ .getJSON不提供错误处理或使用超时.

因为$ .getJSON只是$ .ajax的包装,所以我决定改写这个东西并惊喜,它完美无缺.

现在开始有趣了.当我故意导致404(通过更改URL)或导致网络超时(没有连接到互联网)时,错误事件根本不会触发.我不知道自己做错了什么.非常感谢帮助.

这是代码:

$(document).ready(function(){

    // var jsonFeed = "http://api.flickr.com/services/feeds/photos_public.gne"; // correct URL
    var jsonFeed = "http://api.flickr.com/services/feeds/photos_public.gne_______"; // this should throw a 404

    $.ajax({
        url: jsonFeed,
        data: { "lang" : "en-us",
                "format" : "json",
                "tags" : "sunset"
        },
        dataType: "jsonp",
        jsonp: "jsoncallback",
        timeout: 5000,
        success: function(data, status){
            $.each(data.items, function(i,item){
                $("<img>").attr("src", (item.media.m).replace("_m.","_s."))
                          .attr("alt", item.title)
                          .appendTo("ul#flickr")
                          .wrap("<li><a href=\"" + item.link + "\"></a></li>");
                if (i == 9) return false;
            });
        },
        error: function(XHR, textStatus, errorThrown){
            alert("ERREUR: " + textStatus); …
Run Code Online (Sandbox Code Playgroud)

ajax error-handling jquery jsonp timeout

89
推荐指数
4
解决办法
5万
查看次数

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

在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");
    }
});
Run Code Online (Sandbox Code Playgroud)

并且:

jQuery.getJSON(handlerURL + "&callback=?", 
    function(jsonResult){
        alert("Success!");
    });
Run Code Online (Sandbox Code Playgroud)

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

jQuery(document).ajaxError(function(event, request, settings){
   alert("Error");
});
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的回复!

javascript jquery jsonp

76
推荐指数
4
解决办法
9万
查看次数

jQuery:处理getJSON()中的错误?

使用jQuery的getJSON时如何处理500错误?

有关JSONP getJSON() JSONP的错误处理有几个问题,但我不使用JSONP,只是普通的JSON.

另一个答案建议.ajaxSetup()在致电之前使用getJSON(),所以我尝试了这个:

$.ajaxSetup({
  "error":function() {   
    alert('Error!');
}});
$.getJSON('/book_results/', function(data) { # etc
Run Code Online (Sandbox Code Playgroud)

但我发现警报总是会触发,即使结果是格式良好的.

有任何想法吗?

error-handling jquery json

23
推荐指数
3
解决办法
4万
查看次数

是否可以捕获net :: ERR_BLOCKED_BY_CLIENT?

因此,在我们的网站上,我们进行了各种搜索,其中一些搜索效果很好,并返回适当的结果。其中一些返回javascript错误:

在机器上搜索时,无法加载资源:net :: ERR_BLOCKED_BY_CLIENT。

我发现问题是我在Google Chrome浏览器中运行AdBlocker,而正是造成问题的是AdBlocker。现在,我知道我可以关闭AdBlocker,这很好,我可以,但是有没有办法让我在javascript中捕获此错误并向用户报告为什么他们没有得到任何搜索结果?

理想情况下,我需要进行类似于ac#try / catch的操作。

编辑:好的,所以经过一些挖掘并从下面的评论中指出了正确的方向,我认为我已经推断出了这个问题,希望这会对其他人有所帮助。

看完这篇文章后,看来我要完成的工作无法使用我们当前正在运行的jQuery版本(1.10.x)完成,所以我想解决方案是使用新版本的jQuery(2.x)看看如果我能抓住错误

.net javascript c# google-chrome

5
推荐指数
1
解决办法
4933
查看次数

标签 统计

jquery ×3

error-handling ×2

javascript ×2

jsonp ×2

.net ×1

ajax ×1

c# ×1

google-chrome ×1

json ×1

timeout ×1