什么是 XMLHTTPRequest 对象?
XMLHTTPRequest 对象是一个用于从服务器获取数据的 API。 XMLHTTPRequest 基本上用于 Ajax 编程。它检索任何类型的数据,例如 json、xml、文本等。它在后台请求数据并更新页面,而无需在客户端重新加载页面。 XMLHTTPRequest 对象用于客户端和服务器之间的异步通信。 $.ajax() 方法用于创建 XMLHTTPRequest 对象。
$.ajax() 在后台执行以下步骤:
- 从后台发送数据。
- 从服务器接收数据。
- 更新网页而不重新加载页面。
下面我们将看到如何使用 $.ajax() 方法创建 XMLHTTPRequest 对象:
句法:
var XHR = $.ajax({configs});
例子:
JavaScript
// Example showing how XMLHTTPRequest object created
var XMLO = $.ajax({
// Our sample URL to make the request
url: 'https://jsonplaceholder.typicode.com/todos/1',
// type of Request
type: "GET"
});
JavaScript
// Demonstrating Properties of XMLHTTPRequest object
JavaScript
// Example demonstrating methods of XMLHTTPRequest
// object
现在我们将看到我们可以从服务器检索的数据的数据类型,以及我们为各个数据类型拥有的预处理器。
数据类型:这些是我们可以向服务器请求的数据类型。可用的数据类型有 text、xml、html、script、jsonp 和 json。在这些数据类型的基础上,我们在将响应处理到 XMLHTTPRequest 对象的处理程序之前指定对响应的预处理器。以下是指定数据类型的预处理器:
- 文本:如果数据类型是文本,则不对响应应用预处理器。它可以通过 XMLHTTPRequest 对象的 responseText 属性来访问。
- xml:在 XML 的情况下,预处理器 jQuery.parseXML 应用于响应,然后作为 xml 文档传递给处理程序。它可以通过 XMLRequestHTTPRequest 对象的 responseXML 属性来访问。
- html:对于 html 数据类型,我们不指定任何预处理器来响应。可以使用 responseText 属性访问它。
- 字符串:如果是脚本,脚本将首先运行,然后以字符串的形式处理给处理程序。
- jsonp:如果请求 jsong,我们必须指定 $.ajax() 方法的 jsonpCallback 属性。这将在将 json 对象传递给后继处理程序之前执行。
- json:在 json 的情况下,在将对象传递给处理程序之前,会将响应解析为 jQuery.parseJSON。
属性: XMLHTTPRequest 对象有许多有用的类属性,有助于灵活处理响应。 XMLHTTPRequest 对象属性是:
- readyState:这个属性表示连接的状态。
- status:它包含来自服务器的 http 响应代码。
- statusText:它包含来自服务器的 http 响应字符串。responseText:它包含来自服务器的文本格式的响应。
- responseXML:它包含来自服务器的响应 XML。
- getAllResponseHeaders:此属性以字符串形式返回所有标头名称。
- getResponseHeader:获取标题的名称并返回标题的文本文本值。
- setReaquestHeader:用于设置请求头的值。
- overrideMimeType:此属性用于设置 mime 类型,用于将响应数据类型视为 Text 或 XML 类型。
例子:
JavaScript
// Demonstrating Properties of XMLHTTPRequest object
输出:
# Status of request is : 200
# readyState of request is : 4
# statusText of request is : success
# All Response Headers of request is : function(){return h?p:null}
下面是 XMLHTTPRequest 对象的一些属性的示例:
方法:我们知道 XMLHTTPRequest 进行异步通信,结果它返回承诺。我们有很多 jQuery XMLHTTPRequest 对象的 promise 方法。可用的承诺方法有:
- xmlObject.then():该方法以两个回调函数func1、func2为参数。当 promise 成功解决时调用 func1。请求失败时调用 func2 。
- xmlObject.always():此方法采用单个回调函数。此方法使处理程序在请求被解决或被拒绝时调用。参数函数总是被调用而不关心请求。
- xmlObject.then():此方法接受单个回调函数。当我们的请求得到解决时,将调用此方法。参数函数将在请求解析的情况下运行。
- xmlObject.fail():此方法接受单个回调函数。当我们的请求被拒绝时调用此方法。请求回调函数rereflection后解析。
下面是 XMLHTTPRequest 对象的一些方法的示例:
例子:
JavaScript
// Example demonstrating methods of XMLHTTPRequest
// object
输出:
#Always is resolved
#Done is resolved
#Then is resolved