【发布时间】:2013-03-05 19:19:43
【问题描述】:
取决于浏览器,我想确定应该使用哪个对象。对于 IE XDomainRequest,其余的是 XMLHttpRequest。
if(window.XDomainRequest) //basically 'if IE'
//XDomainRequest
else
//XMLHttpRequest
由于IE10支持跨域资源共享,最好使用XMLHttpRequest对象。此代码将无法正常工作(我想 IE10 仍然支持XDomainRequest,如果我弄错了请纠正我,我无法测试它)。直接检查浏览器并不是最安全的判断方式。所以我的问题是,确定应该使用哪个对象的最佳方法是什么?我正在寻找纯 JS(非 jQuery)的解决方案。
【问题讨论】:
-
尝试使用 XMLHttpRequest,如果失败,例如在 try/catch 中使用 XdomainRequest。但是有一个问题,您是否向其他域发送请求?
-
是的,这就是为什么我不能使用你的想法 - IEXMLHttpRequest 对象,但它不能用于请求外国域。
-
那么这对您有帮助吗? stackoverflow.com/questions/1641507/…
-
是的,大概就是这样,非常感谢!我说可能,因为我无法测试
'withCredentials' in new XMLHttpRequest()在 IE10 中是否为true,但它应该是。尽管这可能有点“不稳定”的解决方案——“Chrome 2 未能通过此测试 [尽管它确实支持跨域请求]”。 -
如果我是你,我不应该为 chrome 2 烦恼,因为今天的版本是 25.. 我已经测试过: ('withCredentials' in new XMLHttpRequest()) 在 IE10 中评估为 true。