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

Javascript 使用jQuery加载缓存脚本时处理404,javascript,jquery,ajax,caching,Javascript,Jquery,Ajax,Caching,我想使用jQuery加载一个JS文件(原因超出了本文的范围)。如果可用,我希望使用缓存。此外,我无法将全局ajax缓存设置设置为true(同样是由于超出范围的原因)。这排除了我使用getScript方法的可能性,因此,根据我所做的如下操作: $(function() { options = { dataType: "script", cache: true, // scheme-less URI. url: "//ajax.googleapis.com/aj

我想使用
jQuery
加载一个JS文件(原因超出了本文的范围)。如果可用,我希望使用缓存。此外,我无法将全局ajax
缓存设置设置为
true
(同样是由于超出范围的原因)。这排除了我使用
getScript
方法的可能性,因此,根据我所做的如下操作:

$(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);  
});
$(函数(){
选项={
数据类型:“脚本”,
是的,
//无模式URI。

url://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jqueryui.min1.js“,//尝试在url之前添加https:。这对我很有用

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

似乎是jQuery1中的一个bug

如果删除
数据类型:“script”,
一切正常(无论您请求的URL如何)

另一个选项-升级到jQuery 2:

您完全更改了url,并且它不是来自同一个域。这是您的新url:
https//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery ui.min1.js
(您缺少
那里…)谢谢,2.x确实有效。遗憾的是,我们仍然需要支持IE9/10,因此无法将其用于工作:(jQuery 2.x支持IE9/10…您应该仔细检查输入,我们还必须支持IE8,因此根据jQuery:“如果您需要支持Internet Explorer 6-8、Opera 12.1x或Safari 5.1+等旧浏览器,请使用jQuery 1.12。”是的,我知道。是的,如果你仍然需要支持IE8,你就有问题了。但是-我真的不认为其他答案能为你提供每个url的解决方案。你应该检查一下。。。