2013-05-27 96 views
0

要使用XMLHttpRequest为了从JavaScript代码中检索服务器中的数据,是否需要对代码运行的浏览器类型进行条件检查?
以下标准使用时的样板代码XMLHttpRequestXMLHttpRequest是否始终可用?

if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

或这不再需要?
我认为使用其他库只是从这些检查保存?

+0

在现代浏览器上,是的。 jQuery 2.0假定它是。但jQuery 1.9并没有。 – Blender

+0

@Blender:所以这样的代码:http://www.w3schools.com/xml/xml_parser.asp是使用'XMLHttpRequest'时的标准样板代码吗? – Cratylus

+0

@Blender:较新的版本比旧版本进行更多的兼容性检查?我认为这是由于错误的假设,即旧版本中的错误? – Cratylus

回答

0

IE 5和6不支持xmlhttprequest对象,您需要创建一个活动的x对象,所以如果您希望用户拥有IE 6或5,那么您应该检查。据我所知,所有其他浏览器都有一个XMLHttpRequest。

如果你依靠你的XMLHttpRequest CORS头,那么你必须使用XDomainRequest的IE版本小于10和大于7(不认为IE 7已经在所有的XMLHttpRequest CORS支持,XDomainRequest或其他方式) 。

+0

感谢匿名downvote,请谨慎说明原因? – HMR

+0

最有可能的原因是你的答案似乎与问题无关,或者离开。不知道你为什么提到CORS。另外,IE5和IE6已经死了。我相信这就是提问者在说“不再”时所表达的意思。 –

+0

CORS是浏览器在其XHR请求对象中支持的标准,但不支持IE 8和9.如果您在XHR中不使用CORS,并不意味着其他人不打算这样做。假设浏览器具有XMLHttpRequest对象并成功实现CORS请求将是错误的。在OP更新他提到的检查浏览器类型的问题之前,功能类型检查比检查浏览器更受欢迎,所以值得一提。 – HMR