使用jQuery加载缓存脚本时处理404s

我想使用jQuery加载一个JS文件(原因超出了本文的范围)。 我想在可用的情况下使用缓存。 此外,我无法将全局ajax cache设置为true (再次出于范围之外的原因)。 这排除了我使用getScript方法所以,根据jQuery的网站,我做了以下内容:

 $(function() { options = { dataType: "script", cache: true, // scheme-less URI. url: "//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min1.js",//<--- 404 success: function() { console.log("yes") }, error: function() { console.log("error") }, always: function() { console.log("always") }, statusCode: { 404: function() { console.log("404") } } }; var $d = jQuery.ajax(options); }); 

现在这在所有情况下都能很好地工作,除非脚本请求返回404时,不会调用任何错误或失败方法。

我可以强制它通过应用超时来调用,但我不想。 为什么不调用error handling方法?

小提琴 : https : //jsfiddle.net/15kozdpf/4/

看起来像jQuery 1中的一个错误。

如果删除dataType: "script",一切正常(无论您请求的URL)。

另一个选项 – 升级到jQuery 2:
https://jsfiddle.net/6asrte12/

尝试在url前添加https:。 这个对我有用

 **Fiddle:** https://jsfiddle.net/15kozdpf/3/