Home Web Front-end JS Tutorial In-depth understanding of ajax's XHR objects

In-depth understanding of ajax's XHR objects

Apr 03, 2018 am 10:33 AM
ajax object understand

This time I will bring you an in-depth understanding of the XHR object of ajax. What are the things to note when using the XHR object of ajax? The following is a practical case, let’s take a look.

The previous words Ajax is the abbreviation of asynchronous

javascript

and XML. The Chinese translation is asynchronous javascript and XML. This technology can request additional data from the server without unloading the page, which will bring a better user experience. Although XML is in the name, ajax communication has nothing to do with the data format. The following will introduce the content of ajax in detail

Creation The core of ajax technology is the XMLHttpRequest object (XHR for short), which was first introduced by Microsoft A feature that other browser providers later provided identical implementations of. XHR provides a fluent interface for sending requests to the server and parsing server responses. It can obtain more information from the server asynchronously, which means that after the user clicks, he can obtain new data without refreshing the page

 IE5 It was the first browser to introduce XHR objects. In IE5, the XHR object is implemented through an ActiveX object in the MSXML library, while IE7+ and other standard browsers support native XHR objects

Creating an XHR object is also called instantiating an XHR object. Because XMLHTTPRequest() is a

constructor

. The following is a compatible way of writing an XHR object

Send a request

open()

When using an XHR object, the first method to be called is open(), which accepts 3 parameters: the type of request to be sent ("get", "post", etc.), the URL of the request and whether to send the request asynchronously The Boolean value

xhr.open("get","example.php", false);
Copy after login

[Note] The URL is relative to the current page where the code is executed, and requests can only be sent to URLs in the same domain using the same port and protocol. If the URL is any different from the page that initiated the request, a security error will occur.

#send()

The send() method receives a parameter, which is to be sent as the request body. The data. After calling the send() method, the request is dispatched to the server

xhr.open("get", "example.txt", false);
xhr.send(null);
Copy after login

Receive response After receiving the response, the response data will automatically Fill in the properties of the XHR object, mainly including the following 4 properties

responseText: The text returned as the response body

responseXML: If the content type of the response is 'text/xml' or 'application/ xml', this attribute will store the XML DOM document of the response data

status: HTTP status of the response

statusText: Description of the HTTP status

After receiving the response , the first step is to check the status attribute to determine that the response has been returned successfully. Generally speaking,

HTTP status code

of 200 can be used as a sign of success. At this point, the content of the responseText attribute is ready, and responseXML can also be accessed if the content type is correct. In addition, a status code of 304 means that the requested resource has not been modified, and the cached version in the browser can be used directly; of course, it also means that the response is valid Regardless of the content type, the content of the response body will be saved to the responseText attribute, and for non-XML data, the value of the responseXML attribute will be null

if((xhr.status >=200 && xhr.status < 300) || xhr.status == 304){
  alert(xhr.responseText);
}else{
  alert(&#39;request was unsuccessful:&#39; + xhr.status);
}
Copy after login

asynchronous If necessary What is received is an asynchronous response, which requires detecting the readyState attribute of the XHR object, which represents the current active stage of the request/response process. Possible values ​​for this attribute are as follows:

0 (UNSENT): Uninitialized. The open() method has not been called

1(OPENED): Start. The open() method has been called, but the send() method has not been called

2(HEADERS_RECEIVED): Send. The send() method has been called and the header information

3(LOADING): received. Partial response body information has been received

4 (DONE): Complete. All response data has been received and can be used on the

client

  只要readyState属性值由一个值变成另一个值,都会触发一次readystatechange事件。可以利用这个事件来检测每次状态变化后readyState的值。通常,我们对readyState值为4的阶段感兴趣,因为这时所有数据都已就绪

  [注意]必须在调用open()之前指定onreadystatechange 事件处理程序才能确保跨浏览器兼容性,否则将无法接收readyState属性为0和1的情况

xhr.onreadystatechange = function(){
  if(xhr.readyState === 4){
    if(xhr.status == 200){
      alert(xhr.responseText);
    }
  }
}
Copy after login

实例

  下面以一个小实例来演示ajax中xhr对象的应用

<button id="btn">获取信息</button>
<p id="result"></p>
<script>
btn.onclick = function(){
  //创建xhr对象
  var xhr;
  if(window.XMLHttpRequest){
    xhr = new XMLHttpRequest();
  }else{
    xhr = new ActiveXObject('Microsoft.XMLHTTP');
  }
  //异步接受响应
  xhr.onreadystatechange = function(){
    if(xhr.readyState == 4){
      if(xhr.status == 200){
        //实际操作
        result.innerHTML += xhr.responseText;
      }
    }
  }
  //发送请求
  xhr.open('get','message.xml',true);
  xhr.send();
}
</script>
Copy after login

//message.xml

<p>hello world</p>
Copy after login

最后

  通过实例的演示发现,ajax前端本身的内容并不难。但是,由于ajax涉及到一些后端及网络的知识,使得学起来不是很容易。以后的博文将逐步深入地介绍ajax的重点内容

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

AJAX的队列请求如何实现(附代码)

pushState+Ajax实现无刷新的页面切换

The above is the detailed content of In-depth understanding of ajax's XHR objects. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to solve the 403 error encountered by jQuery AJAX request How to solve the 403 error encountered by jQuery AJAX request Feb 20, 2024 am 10:07 AM

Title: Methods and code examples to resolve 403 errors in jQuery AJAX requests. The 403 error refers to a request that the server prohibits access to a resource. This error usually occurs because the request lacks permissions or is rejected by the server. When making jQueryAJAX requests, you sometimes encounter this situation. This article will introduce how to solve this problem and provide code examples. Solution: Check permissions: First ensure that the requested URL address is correct and verify that you have sufficient permissions to access the resource.

PHP and Ajax: Building an autocomplete suggestion engine PHP and Ajax: Building an autocomplete suggestion engine Jun 02, 2024 pm 08:39 PM

Build an autocomplete suggestion engine using PHP and Ajax: Server-side script: handles Ajax requests and returns suggestions (autocomplete.php). Client script: Send Ajax request and display suggestions (autocomplete.js). Practical case: Include script in HTML page and specify search-input element identifier.

How to solve jQuery AJAX request 403 error How to solve jQuery AJAX request 403 error Feb 19, 2024 pm 05:55 PM

jQuery is a popular JavaScript library used to simplify client-side development. AJAX is a technology that sends asynchronous requests and interacts with the server without reloading the entire web page. However, when using jQuery to make AJAX requests, you sometimes encounter 403 errors. 403 errors are usually server-denied access errors, possibly due to security policy or permission issues. In this article, we will discuss how to resolve jQueryAJAX request encountering 403 error

How to solve the problem of jQuery AJAX error 403? How to solve the problem of jQuery AJAX error 403? Feb 23, 2024 pm 04:27 PM

How to solve the problem of jQueryAJAX error 403? When developing web applications, jQuery is often used to send asynchronous requests. However, sometimes you may encounter error code 403 when using jQueryAJAX, indicating that access is forbidden by the server. This is usually caused by server-side security settings, but there are ways to work around it. This article will introduce how to solve the problem of jQueryAJAX error 403 and provide specific code examples. 1. to make

How to convert MySQL query result array to object? How to convert MySQL query result array to object? Apr 29, 2024 pm 01:09 PM

Here's how to convert a MySQL query result array into an object: Create an empty object array. Loop through the resulting array and create a new object for each row. Use a foreach loop to assign the key-value pairs of each row to the corresponding properties of the new object. Adds a new object to the object array. Close the database connection.

How to get variables from PHP method using Ajax? How to get variables from PHP method using Ajax? Mar 09, 2024 pm 05:36 PM

Using Ajax to obtain variables from PHP methods is a common scenario in web development. Through Ajax, the page can be dynamically obtained without refreshing the data. In this article, we will introduce how to use Ajax to get variables from PHP methods, and provide specific code examples. First, we need to write a PHP file to handle the Ajax request and return the required variables. Here is sample code for a simple PHP file getData.php:

How do PHP functions return objects? How do PHP functions return objects? Apr 10, 2024 pm 03:18 PM

PHP functions can encapsulate data into a custom structure by returning an object using a return statement followed by an object instance. Syntax: functionget_object():object{}. This allows creating objects with custom properties and methods and processing data in the form of objects.

What should I pay attention to when a C++ function returns an object? What should I pay attention to when a C++ function returns an object? Apr 19, 2024 pm 12:15 PM

In C++, there are three points to note when a function returns an object: The life cycle of the object is managed by the caller to prevent memory leaks. Avoid dangling pointers and ensure the object remains valid after the function returns by dynamically allocating memory or returning the object itself. The compiler may optimize copy generation of the returned object to improve performance, but if the object is passed by value semantics, no copy generation is required.

See all articles