Javascript .getJSON与.ajax错误处理
我试图在外部json加载失败时调用错误函数 这适用于.getJSON,但不适用于.ajax。有人能看一下代码,告诉我是否遗漏了什么吗 请点击此处:Javascript .getJSON与.ajax错误处理,javascript,jquery,ajax,error-handling,Javascript,Jquery,Ajax,Error Handling,我试图在外部json加载失败时调用错误函数 这适用于.getJSON,但不适用于.ajax。有人能看一下代码,告诉我是否遗漏了什么吗 请点击此处: 谢谢。正如我在评论中已经提到的,.getJSON使用数据类型json。通过在.ajax()调用中显式地将数据类型设置为jsonp,可以强制jQuery假定您将使用填充响应(基本上是指动态脚本标记插入)检索真正的json 将数据类型设置为json也将“正确失败”。IIRC,jQuery不会在失败的jsonp调用上调用error(这就是.fail绑定的内
谢谢。正如我在评论中已经提到的,
.getJSON
使用数据类型json
。通过在.ajax()
调用中显式地将数据类型设置为jsonp
,可以强制jQuery假定您将使用填充响应(基本上是指动态脚本标记插入)检索真正的json
将数据类型设置为
json
也将“正确失败”。IIRC,jQuery不会在失败的jsonp调用上调用error
(这就是.fail
绑定的内容)。但是,幸运的是,这是一个常见的问题,并且有一个解决方案:dataType
应该是json
,作为旁注。@jAndy:实际上,我正试图让jsonp正确地失败。然后你在比较苹果和桔子getJSON()
还将数据类型设置为json
jsonp
是一个完全不同的故事。你应该在最后一段读这篇文章@ᾠῗᵲᄐᶌ 谢谢,可惜JSONRequest设计方案似乎没有任何吸引力。
$.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'); });