根据浏览器的不同,我想确定应该使用哪个对象。对于IE < 10,它应该是XDomainRequest,对于rest XMLHttpRequest。
if(window.XDomainRequest) //basically 'if IE'
//XDomainRequest
else
//XMLHttpRequest由于IE10支持跨域资源共享,因此最好使用XMLHttpRequest对象。这段代码不能很好地工作了(我认为IE10仍然支持XDomainRequest,如果我错了,请纠正我,我不能测试它)。直接检查浏览器并不是确定事情的最安全的方法。所以我的问题是,确定应该使用哪个对象的最佳方法是什么?我正在寻找纯JS (非jQuery)解决方案。
发布于 2013-12-06 05:33:05
我就是这么做的,但这并不好。
var useXDR = window.XDomainRequest && (window.XMLHttpRequest && new XMLHttpRequest().responseType === undefined);它之所以有效,是因为对于新创建的XHR,IE10有一个空字符串的responseType,但在不支持XHR2的IE版本中,它是未定义的。
如果您真的走上了这条路,请记住,XDR比XHR更难调试-当出现问题时,它提供的信息更少,而且一些即使在旧的XmlHttpRequest实现上也能很好地工作的特性在XDR上根本不起作用。
即使您的浏览器不支持XHR2而支持XDR,当您从加载页面的相同主机/端口请求urls时,您仍然希望使用XHR。
https://stackoverflow.com/questions/15460152
复制相似问题