Обработка 404s при загрузке кешированных скриптов с помощью jQuery

Я хочу загрузить JS файл, используя jQuery (по причинам, выходящим за рамки этого сообщения). Я хотел бы использовать кеш, если он доступен. Также я не могу установить глобальную настройку ajax cache на true (опять же по причинам, выходящим за рамки). Это исключает использование метода getScript Итак, за jQuery website Я сделал следующее:

$(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);  
});

Теперь это хорошо работает во всех случаях, кроме случаев, когда запрос script возвращает 404, ни один из методов ошибки или отказа не вызван.

Я могу заставить его получить вызов, применяя тайм-аут, но я этого не хочу. Почему методы обработки ошибок не вызываются?

Fiddle: https://jsfiddle.net/15kozdpf/4/

Ответы

Ответ 1

Похоже на ошибку в jQuery 1.

Если вы удалите dataType: "script",, все будет работать (независимо от запрашиваемого URL-адреса).

Другой вариант - обновить jQuery 2:
https://jsfiddle.net/6asrte12/

Ответ 2

Попробуйте добавить https: перед URL. Это работает для меня

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