jQuery getScript在连接被拒绝时未运行fail方法

jQuery getScript在连接被拒绝时未运行fail方法,jquery,Jquery,我试图解释一个没有加载的脚本,因为它可能被中国的防火墙阻止。因此,我编辑了我的主机文件,将google.com和www.google.com定向到127.0.0.1 当我运行以下命令时 $.getScript('https://www.google.com/recaptcha/api.js').done(function(){ console.log('done'); }).fail(function(){ console.log('fail'); }); 未被阻止时,我得到完

我试图解释一个没有加载的脚本,因为它可能被中国的防火墙阻止。因此,我编辑了我的主机文件,将google.com和www.google.com定向到127.0.0.1

当我运行以下命令时

$.getScript('https://www.google.com/recaptcha/api.js').done(function(){
    console.log('done');
}).fail(function(){
    console.log('fail');
});
未被阻止时,我得到
完成
,但被阻止时,我没有得到
失败
。但是,我确实看到在尝试加载脚本时,控制台中的连接被拒绝

我在文档中遗漏了什么吗?如果脚本加载失败,如何测试或运行回退。为什么失败没有发射?我试过各种方法让它工作,但都没办法

我试着写得很长,但也没用

$.ajax({
    url: "https://www.google.com/recaptcha/api.js",
    dataType: 'script',
    error: function(){
        console.log('test');
    },
    cache: false,
    complete: function(){
        console.log('complete');
    },
    success: function(){
        console.log('success');
    }
});
我在文档中遗漏了什么吗

对。请注意
错误
说明:

注意:对于跨域脚本和 跨域JSONP请求


我愿意用另一种方式测试连接,但这似乎是最直接的,或者我是这么认为的。当我将数据类型更改为HTML时,它似乎正确地处理了错误,但我得到跨域错误的原因很明显。然而,出于测试目的,它似乎起了作用。那么,为什么当它的脚本发生故障时,
不触发
,我如何在正常情况下加载这个异常的脚本,但如果它实际上根本无法加载,我就失败了呢?我使用了超时方法。我逐字逐句地读了几遍这些文件,出于某种原因,当我逐字逐句地读它的时候,就好像它对我来说没有意义一样。