XMLHttpRequest 对象


XMLHttpRequest对象是JavaScript基础中的重要知识点,它是一种用于制作Web应用程序中的客户端资源请求的API。它可以向服务器发送HTTP请求,以便获取数据。这些数据通常是以文本或JSON的格式返回的。

XMLHttpRequest对象的工作原理

XMLHttpRequest对象充当客户端和服务器端之间的中介,是客户端向服务器请求数据的核心API。当您创建XMLHttpRequest对象时,您可以将它配置为通过JavaScript代码向服务器发送HTTP请求(通常是GET或POST方式请求)。服务器将响应请求,并返回指定格式的数据。

当XMLHttpRequest对象收到响应后,可以通过JavaScript代码对其进行操作。例如,您可以将数据写入HTML文件、执行其他JavaScript代码,或者将数据提交到另一个Web应用程序中继续处理。

XMLHttpRequest对象的常用方法

open()

这个方法是用于创建一个请求,所有的设置都是在这个方法中完成。XMLHttpRequest对象带有open()方法,该方法有三个参数:请求的方式(GET、POST等),请求的路径(服务器地址),表示是否异步请求的布尔值。

xhr.open("GET","/path/to/resource",true);

send()

用于发送请求,请求已经被创建了,还需要执行send()方法来完成请求,该方法没有参数。

xhr.send();

abort()

用于取消当前请求。

xhr.abort();

setRequestHeader()

用于设置头文件,该方法接受两个参数,第一个参数是头文件名称,第二个参数是头文件的值。

xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

XMLHttpRequest对象的常用属性

readyState

XMLHttpRequest对象的readyState属性表示请求的状态,取值为0-4,分别表示未初始化、已连接、已发送、正在接收和已完成。

status

XMLHttpRequest对象的status属性表示请求响应的状态码。

responseText

XMLHttpRequest对象的responseText属性包含响应的文本内容。

timeout

设置请求的超时时间,默认值为0,单位为毫秒。

XMLHttpRequest对象的错误处理

当XMLHttpRequest对象发生错误时,可以通过XMLHttpRequest对象的onerror事件进行处理。

xhr.onerror=function(){
  console.log("出现错误");
};

使用XMLHttpRequest对象获取数据

XMLHttpRequest对象通常用于获取JSON或XML格式的数据,可以使用如下代码:

var xhr = new XMLHttpRequest();
xhr.open("GET", "/path-to-resource", true);
xhr.onreadystatechange = function(){
    if(xhr.readyState==4 && xhr.status==200){
        data = JSON.parse(xhr.responseText);
        console.log(data);
    }
};
xhr.send();

以上代码将向服务器发出GET请求,等待服务器响应后将响应JSON格式的数据存储在data变量中,并输出到控制台。