0

我试图在外部 json 加载失败时调用我的错误函数。

这适用于 .getJSON,但不适用于 .ajax。谁能看一下代码并告诉我是否遗漏了什么?

JSfiddle在这里:http: //jsfiddle.net/8C7Hb/

$.getJSON( "http://foo.com/bar.json", function() {
    $('#method1_result').html('Success');
}).fail(function() { $('#method1_result').html('Fail'); });

$.ajax({
    url: "http://foo.com/bar.json",
    dataType: "jsonp", 
    success: function(data) {
         $('#method2_result').html('Success'); 
    },
    error: function() {
        $('#method2_result').html('Error');
    }
}).fail(function() { $('#method2_result').html('Fail'); });

谢谢你。

4

2 回答 2

0

IIRC,jQuery 不会调用error失败的 jsonp 调用(这是.fail绑定的)。但是,幸运的是,这是一个常见问题,并且有解决方案:https ://github.com/jaubourg/jquery-jsonp

于 2013-06-18T13:52:55.987 回答
0

正如我在评论中已经提到的,.getJSON使用dataType json。通过在调用中显式设置dataType,您可以强制 jQuery 假设您将使用 padding-response 检索真正的json(这基本上意味着动态脚本标签插入)。jsonp.ajax()

dataType设置为json也将“正确失败”。

于 2013-06-18T13:50:45.920 回答