Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .getJSON与.ajax错误处理_Javascript_Jquery_Ajax_Error Handling - Fatal编程技术网

Javascript .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绑定的内

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

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

请点击此处:


谢谢。

正如我在评论中已经提到的,
.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'); });