没有框架的javascript ajax请求

Riz*_*han 6 javascript ajax frameworks request

有没有人知道如何使用跨浏览器工作的ajax请求函数没有使用像jQuery等javascript框架?

T.J*_*der 10

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.");
}
Run Code Online (Sandbox Code Playgroud)

我不是建议上面举例说明最佳实践(微软似乎主要是由非常非常缺乏经验的工程师编写的MSDN示例),但它为您提供了一个起点.例如,上述要求响应状态为200表示成功,当然HTTP规范明确规定200 <= n <= 299范围内的任何内容都是"成功".