我知道这已经被访问了很多,并且我已经设法让它与其他项目一起工作。我继承了在 IE 中不起作用的这段代码:
function loadTemplate(template, alt_cache_name) {
if (templates[template] !== undefined) {
if (alt_cache_name !== undefined) {
templates[alt_cache_name] = templates[template];
}
return templates[template];
} else {
return $.get(template, function (response) {
if (alt_cache_name !== undefined) {
templates[alt_cache_name] = response;
}
templates[template] = response;
}, 'text');
}
}
问题在于 $.get()。
的值template
是特定 html 模板的 url。
我尝试了以下方法,但我认为返回类型与 $.get() 返回的类型不同:
function createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") {
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
xhr = null;
}
return xhr;
}
function loadTemplate(template, alt_cache_name) {
if (templates[template] !== undefined) {
if (alt_cache_name !== undefined) {
templates[alt_cache_name] = templates[template];
}
return templates[template];
} else {
var request = createCORSRequest("GET", template);
var content = "";
if (request) {
request.onload = function () {
//do something with request.responseText
console.log(request.responseText);
if (alt_cache_name !== undefined) {
templates[alt_cache_name] = response.responseText;
}
templates[template] = response.responseText;
};
}
return request;
// return $.get(template, function (response) {
// if (alt_cache_name !== undefined) {
// templates[alt_cache_name] = response;
// }
// templates[template] = response;
// }, 'text');
}
}
我什至尝试过$.get
:
jQuery.support.cors = true;
有人可以阐明如何使其工作吗?