在IE8中,有很多关于js模型提取的帖子不起作用。总是会产生错误回调。在其他地方都很成功:IE10+,Chrome,FF,Safari等,只是不在IE8中。
解决这个问题的一个问题是在错误回调中缺少可用的细节。本以为类似下面这样的东西会给予我一些细节,但它没有:
myModel.fetch({
success: (function () {
//do stuff
}),
error:(function (e) {
alert('Fetch error message: ' + e.toString());
})
});
只产生输出[object Object]。即使我在VS中设置了中断并检查了错误对象,也没有任何细节。
因此,如果没有关于错误的详细信息,我就开始猜测。
我看到很多帖子说“IE8和IE9只以非标准的方式支持CORS”或“IE10使用XMLHTTPRequest,IE8使用遗留的XDomainRequest对象”。如果你必须支持IE8的话,我可以使用XDomainRequest。但是 Backbone 网是在底层处理 AJAX 的。它的好处之一是显而易见的。我想我可以如果我们在IE8中,我应该告诉 Backbone 网以某种方式有条件地使用XDomainRequest。我该怎么做呢?
我尝试了Backbone.CrossDomain库(https://github.com/victorquinn/Backbone.CrossDomain),它声称可以为你做到这一点。只要在 Backbone 和 Backbone 跨域获取后包含该库就可以神奇地工作。尝试了,但对我来说不起作用。仍然产生相同的错误回调,没有详细信息,所以没有办法真正排除故障的原因。
1条答案
按热度按时间z6psavjg1#
我假设我应该告诉 Backbone.js 以某种方式有条件地使用XDomainRequest,如果我们在IE8中的话。我该怎么做?
使用代理函数:
参考资料