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的解决方案。你应该检查一下。。。