没有框架的javascript ajax请求

标签 javascript ajax frameworks request

有谁知道如何在不使用 jQuery 等 javascript 框架的情况下制作跨浏览器的 ajax 请求函数?

最佳答案

XMLHttpRequest 对象实际上使用起来并不那么复杂。要广泛兼容,您必须玩一些游戏来创建对象,但之后对于简单的操作来说就相当简单了。

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

关于没有框架的javascript ajax请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5907781/

相关文章:

javascript - 如何使用 jQuery 检查 ajax 调用是否存在?

java - 在 View 中 Play Framework 帮助

html - 是否有可用的 HTML 5 框架来支持快速开发?

javascript - 开关盒 - 其他条件

javascript - 为 0 到 999 之间的数字或无输入制定 Vuetify 规则

javascript - Highcharts :(Solid Gauge) How to generate gauge dial with an arrow end.

javascript - 如何比较此循环中的日期值以查找重复项

javascript - 基于另一个选择的ajax选择

javascript - Bootstrap 4 动态 javascript 不起作用,在 Bootstrap 3 中工作正常

javascript - 如何在Vuejs中从html和css生成pdf?