什么是XMLHTTPRequest对象

什么是XMLHTTPRequest对象

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

  • 从后台发送数据。
  • 接收来自服务器的数据。
  • 更新网页而不需要重新加载页面。

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

语法:

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

示例:

// 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"
});

现在我们将看到我们可以从服务器上检索的数据类型,以及我们对各自的数据类型有什么预处理程序。

数据类型:这些是我们可以向服务器请求的数据类型。可用的数据类型有文本、xml、html、脚本、jsonp和json。在这些数据类型的基础上,我们在处理XMLHTTPRequest对象的处理程序之前对响应指定预处理程序。以下是指定的数据类型的预处理程序。

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

属性: XMLHTTPRequest对象有许多有用的类属性,有助于灵活处理响应。XMLHTTPRequest对象的属性如下。

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

示例:

// Demonstrating Properties of XMLHTTPRequest object
<script>
 
var xmlObj = $.ajax({
 
    // Our sample url to make request
    url: 'https://jsonplaceholder.typicode.com/todos/1',
 
    // type of Request
    type: "GET"
});
 
xmlObj.always(function(a, b, c) {
    console.log(" # Status of request is : ", c.status);
    console.log(" # readyState of request is : ", c.readyState);
    console.log(" # statusText of request is : ", c.statusText);
    console.log(" # All Response Headers of request is : ",
           c.getAllResponseHeaders);
 });
</script>

输出:

# 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对象的承诺方法。可用的承诺方法有。

  • xmlObject.then()。这个方法需要两个回调函数func1、func2作为参数。func1在承诺被成功解决时调用。而func2在请求失败时被调用。
  • xmlObject.always()。这个方法采取单一的回调函数。这个方法使处理程序在请求被解决或拒绝时被调用。参数函数总是被调用而不关心请求。
  • xmlObject.then()。这个方法接受单一的回调函数。当我们的请求被解决时,这个方法将被调用。参数函数将随着请求的解决而运行。
  • xmlObject.fail(): 这个方法接受单一的回调函数。当我们的请求被拒绝时就会调用这个方法。

下面是XMLHTTPRequest对象的一些方法的例子。

示例:

// Example demonstrating methods of XMLHTTPRequest
// object
<script>
 
var xmlObj = $.ajax({
 
    // Our sample url to make request
    url: 'https://jsonplaceholder.typicode.com/todos/1',
     
    // type of Request
    type: "GET",
});
 
xmlObj.then(function(){
    console.log(" #Then is resolved ");
});
 
xmlObj.fail(function(){
    console.log(" #Fail is resolved ");
});
 
xmlObj.always(function(){
    console.log(" #Always is resolved ");
});
 
xmlObj.done(function(){
    console.log(" #Done is resolved ");
});
         
</script>

输出:

#Always is resolved 
#Done is resolved 
#Then is resolved

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程