【发布时间】:2019-06-14 13:00:50
【问题描述】:
我想在 ajax 的帮助下动态加载一些模板文件。我已经添加了用于加载 html 文件的 ajax $.get 方法,它可以在除 safari 浏览器之外的所有浏览器中正常工作。
在 Safari 中,当我第一次打开 url 时,它给了我 “加载资源失败:已取消” 错误。但是,在我再次刷新页面后,它会加载所有文件。
当我使用 http 请求而不是 https 打开我的 url 时,它可以在 safari 浏览器上首次加载模板文件。
仅当我使用 https 打开网址时才会出现此问题。我已经成功安装了证书,并且它与其他浏览器一起工作正常。即使在 safari 中也没有证书问题。
这是我的代码
var decorator = {
init: function(book, cd) {
this.loadTPL(cd);
},
tpl: {
btnStart: "tpl/startBtn.html",
interfaceTpl: "tpl/interfaceTpl.html",
topMenu: "tpl/topMenu.html",
topMenuItem: "tpl/topMenuItem.html",
},
loadTPL: function(cbTpl) {
var self = this;
var objTpl = {};
async.forEachOf(this.tpl, function(value, key, callback) {
$.get(value, {}, function(data) {
//alert("Load was performed.");
//console.log(value, data);
objTpl[key] = data;
callback();
});
}, function(err, results) {
if (err) {
console.log(err);
}
self.tpl = objTpl;
cbTpl(err);
});
}
}
有什么想法吗?
【问题讨论】:
-
检测到第一次发送失败可以尝试重新发送请求
-
@KamilKiełczewski 我试图重新发送请求,但它不起作用。它只有在我刷新页面时才起作用。
-
你是从 https 源调用 https url 吗?
-
@sparshturkane,是的,我正在从 https 源调用 https url
-
请使用您当前的操作系统、Safari 版本和来自控制台的请求/响应标头更新您的帖子。
标签: javascript jquery ajax https