JS 中 XMLHttpRequest 的实例属性有哪些?

高手打扰一下,JS 中 XMLHttpRequest 的实例属性有哪些?
最新回答
浪里个浪

2026-10-30 12:43:09

XMLHttpRequest 是 JavaScript 中用于发起 HTTP 请求和处理响应的关键对象。它提供了多种属性来帮助开发者获取和处理远程服务器的数据。以下详细介绍了 XMLHttpRequest 对象的实例属性:

首先,XMLHttpRequest.readyState 属性返回一个整数,表示实例对象当前的状态。它可能返回以下值之一:0(未初始化)、1(正在打开连接)、2(已打开未发送请求)、3(正在接收响应)、4(请求完成)。每当实例对象的状态发生变化时,readyState 属性的值也会相应改变,并触发 readyStateChange 事件。

其次,XMLHttpRequest.onreadystatechange 属性指向一个监听函数。当实例对象的状态发生变化(即 readyState 属性变化)时,会执行这个函数。此外,当调用 abort() 方法终止 XMLHttpRequest 请求时,readyState 属性也会变化,同样会执行此属性指定的函数。

XMLHttpRequest.response 属性表示服务器返回的数据体,其类型由 XMLHttpRequest.responseType 属性决定。该属性只读,若请求未成功或数据不完整,则该属性的值为 null。在某些情况下,如在请求未结束且 readyState 为 3 时,response 属性包含服务器已经返回的部分数据。

XMLHttpRequest.responseType 属性用于指定服务器返回数据的类型,如文本、二进制数据或 JSON 对象等。通过设置此属性,浏览器会根据指定的类型解读返回的数据。例如,设为 'text' 适用于大多数情况,而设为 'document' 则适合处理 HTML 或 XML 文档,允许直接使用 DOM 操作。

XMLHttpRequest.responseText 属性返回服务器接收到的字符串形式的数据,其值在请求完成接收后才可获取。而 XMLHttpRequest.responseXML 属性则提供从服务器接收到的 HTML 或 XML 文档对象,适用于解析 XML 或 HTML 数据。需要注意的是,该属性的有效性取决于 Content-Type 头信息,通常要求为 'text/xml' 或 'application/xml'。

XMLHttpRequest.responseURL 属性返回服务器的网址,可能与 open() 方法指定的请求网址不同。在服务器发生跳转时,该属性会返回实际返回数据的网址,并剥离原始 URL 中的锚点。

XMLHttpRequest.status 属性返回服务器回应的 HTTP 状态码,通常在通信成功时为 200;若服务器未返回状态码,则默认为 200。该属性只读。XMLHttpRequest.statusText 属性则返回服务器发送的状态提示,包含整个状态信息,如 'OK' 或 'Not Found'。

XMLHttpRequest.timeout 属性用于设置请求自动终止的时间限制,以毫秒为单位。若值为 0,则表示没有时间限制。XMLHttpRequestEventTarget.ontimeout 属性用于监听当请求超时时触发的事件。

XMLHttpRequest 对象还支持多种事件监听属性,如 progress、error 等,帮助开发者监控请求的进度和处理错误情况。

最后,XMLHttpRequest.withCredentials 属性用于控制在发起跨域请求时是否发送用户信息(如 Cookie 和认证头信息)。默认情况下,此属性为 false,这意味着跨域请求不会携带本机设置的 Cookie。但若需要发送 Cookie,可以将其设置为 true,并确保服务器响应中包含 Access-Control-Allow-Credentials 头信息。

XMLHttpRequest.upload 属性提供了发送文件上传请求的能力,并允许通过此属性获取上传进度信息。例如,开发者可以通过监听 upload 属性的 progress 事件来实时监控文件上传的进度。