Ответ 1
Похоже на ошибку в jQuery 1.
Если вы удалите dataType: "script",
, все будет работать (независимо от запрашиваемого URL-адреса).
Другой вариант - обновить jQuery 2:
https://jsfiddle.net/6asrte12/
Я хочу загрузить 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/
Похоже на ошибку в jQuery 1.
Если вы удалите dataType: "script",
, все будет работать (независимо от запрашиваемого URL-адреса).
Другой вариант - обновить jQuery 2:
https://jsfiddle.net/6asrte12/
Попробуйте добавить https: перед URL. Это работает для меня
**Fiddle:** https://jsfiddle.net/15kozdpf/3/