什么是 XMLHTTPRequest 对象?

XMLHTTPRequest 对象是一个用于从服务器获取数据的 API。它基本上被应用于 Ajax 编程中。它可以检索任何类型的数据,例如 json、xml、text 等。它在后台请求数据,并在客户端无需重新加载页面的情况下更新页面。XMLHTTPRequest 对象用于客户端和服务器之间的异步通信。我们可以使用 $.ajax() 方法来创建 XMLHTTPRequest 对象。

$.ajax() 方法在后台执行以下步骤:

  • 从后台发送数据。
  • 接收来自服务器的数据。
  • 在不重新加载页面的情况下更新网页。

下面我们将看看如何使用 $.ajax() 方法创建 XMLHTTPRequest 对象:

语法:

var XHR = $.ajax({configs});

示例:

JavaScript


CODEBLOCK_8bc1b665

现在我们将看看我们可以从服务器检索的数据的数据类型,以及针对各种数据类型我们拥有哪些预处理器。

数据类型: 这些是我们可以向服务器请求的数据类型。可用的数据类型包括 text、xml、html、script、jsonp 和 json。基于这些数据类型,我们在将响应传递给 XMLHTTPRequest 对象的处理程序之前,会指定相应的预处理器。以下是指定数据类型的预处理器:

  • Text: 如果数据类型是 text,则不对响应应用预处理器。它可以通过 XMLHTTPRequest 对象的 responseText 属性访问。
  • xml: 在 XML 的情况下,会对响应应用 jQuery.parseXML 预处理器,然后作为 xml 文档传递给处理程序。它可以通过 XMLRequestHTTPRequest 对象的 responseXML 属性访问。
  • html: 在 html 数据类型的情况下,我们不为响应指定任何预处理器。可以使用 responseText 属性访问它。
  • string: 在 script 的情况下,脚本将首先运行,然后以字符串的形式传递给处理程序。
  • jsonp: 在请求 jsonp 的情况下,我们必须指定 $.ajax() 方法的 jsonpCallback 属性。该属性将在将 json 对象传递给后续处理程序之前执行。
  • json: 在 json 的情况下,响应会在将对象传递给处理程序之前通过 jQuery.parseJSON 进行解析。

属性: XMLHTTPRequest 对象有许多有用的类属性,这有助于灵活地处理响应。XMLHTTPRequest 对象的属性包括:

  • readyState: 此属性指示连接的状态。
  • status: 它包含来自服务器的 http 响应代码。
  • statusText: 它包含来自服务器的 http 响应字符串。responseText:它包含来自服务器的文本格式响应。
  • responseXML: 它包含来自服务器的响应 Xml。
  • getAllResponseHeaders: 此属性以字符串形式返回所有标头名称。
  • getResponseHeader: 它接受标头名称并返回标头的文本值。
  • setRequestHeader: 它用于设置请求标头的值。
  • overrideMimeType: 此属性用于设置 mime 类型,用于将响应数据类型视为 Text 或 XML 类型。

示例:

JavaScript


CODEBLOCK_565d0875

输出:

# 请求状态为 : 200
# 请求的 readyState 为 : 4
# 请求的 statusText 为 : success
# 请求的所有响应标头为 : function(){return h?p:null}

下面是 XMLHTTPRequest 对象的一些属性示例:

方法: 我们知道 XMLHTTPRequest 进行异步通信,因此它返回 promise。我们有许多 jQuery XMLHTTPRequest 对象的 promise 方法。可用的 promise 方法有:

  • xmlObject.then(): 此方法接受两个回调函数 func1、func2 作为参数。当 promise 成功解决时调用 func1。当请求失败时调用 func2。
  • xmlObject.always(): 此方法接受单个回调函数。此方法使处理程序在请求被解决或被拒绝时调用。无论请求结果如何,参数函数总是会被调用。
  • xmlObject.done(): 此方法接受单个回调函数。当我们的请求被解决时,将调用此方法。参数函数将随请求的解决一起运行。
  • xmlObject.fail(): 此方法接受单个回调函数…
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/43551.html
点赞
0.00 平均评分 (0% 分数) - 0