有谁知道如何使ajax请求功能能够跨浏览器而无需使用jQuery等JavaScript框架?
该XMLHttpRequest对象实际上并没有那么复杂。为了广泛兼容,您必须玩一些游戏才能创建对象,但是在此之后,对于简单操作而言,这是相当简单的。
XMLHttpRequest
Microsoft在MSDN页面XMLHttpRequest上具有的示例,其中包括用于以跨浏览器方式创建对象的功能,该功能支持IE的早期版本。这是他们的例子:
function getXMLHttpRequest() { if (window.XMLHttpRequest) { return new window.XMLHttpRequest; } else { try { return new ActiveXObject("MSXML2.XMLHTTP.3.0"); } catch(ex) { return null; } } } function handler() { if (oReq.readyState == 4 /* complete */) { if (oReq.status == 200) { alert(oReq.responseText); } } } var oReq = getXMLHttpRequest(); if (oReq != null) { oReq.open("GET", "http://localhost/test.xml", true); oReq.onreadystatechange = handler; oReq.send(); } else { window.alert("AJAX (XMLHTTP) not supported."); }
我并不是说上面的示例是最佳实践(Microsoft似乎由非常缺乏经验的工程师编写了他们的MSDN示例),但是它为您提供了一个起点。例如,以上要求成功的响应状态为200,当然HTTP规范明确指出200≤n≤299范围内的任何内容都是“成功”。