小编典典

没有框架的javascript ajax请求

ajax

有谁知道如何使ajax请求功能能够跨浏览器而无需使用jQuery等JavaScript框架?


阅读 321

收藏
2020-07-26

共1个答案

小编典典

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范围内的任何内容都是“成功”。

2020-07-26