Objeto AJAX XMLHttpRequest

XMLHttpRequest es un objeto que se usa para enviar una solicitud al servidor web para intercambiar datos o transferirlos y manipularlos desde el servidor detrás de escena. Puede utilizar los datos recibidos para actualizar los datos presentes en la página web sin siquiera recargar la página.

A continuación se muestra la sintaxis completa para usar el objeto XMLHttpRequest.

Sintaxis:

Al principio, debe invocar el método XMLHttpRequest() como se muestra a continuación.

var variable_name = new XMLHttpRequest();

Después de llamar al método XMLHttpRequest() , debe definir una función de devolución de llamada que se activará después de obtener la respuesta. 

variable_name.onload = function () {
    // Content of callback function
    // after getting the response
}

Enviar una solicitud usando los métodos open()   y send() como se muestra a continuación.

variable_name.open("GET", "textFile.txt");
variable_name.send();

El objeto XMLHttpRequest tiene diferentes funciones y propiedades que se enumeran a continuación.

Métodos de objeto XMLHttpRequest:

  • new XMLHttpRequest(): Crea un nuevo objeto XMLHttpRequest.
  • abortar(): este método cancelará la solicitud actual para intercambiar datos.
  • getAllResponseHeaders(): devolverá un conjunto de encabezados HTTP en forma de string.
  • getResponseHeader(): devolverá la información del encabezado HTTP especificado.
  • open(método, URL, asíncrono, nombre de usuario, contraseña): este método especifica el método, la URL y otros parámetros de una solicitud. En esta llamada de función, el parámetro de método define la operación que debe realizarse en los datos como GET, POST, HEAD y algunos otros métodos HTTP como PUT, DELETE. El parámetro async especifica el comportamiento asíncrono de la solicitud. Tiene dos valores verdadero y falso . Si el valor es verdadero , el procesamiento del script continuará después del método send() sin esperar la respuesta, mientras que el valor falso significa que el script esperará una respuesta antes de procesarlo.
  • send(): Enviará la solicitud al servidor para el intercambio de datos. Para OBTENER las requests, se usa send() .
  • send(string): También envía la solicitud al servidor para el intercambio de datos, pero se usa para POSTear las requests.
  • setRequestHeader(): agregará el par de etiqueta y valor al encabezado que debe enviarse.

Ejemplo: El siguiente ejemplo ilustra el uso de métodos de objetos XMLHttpRequest() .

HTML

<!DOCTYPE html>
<html>
  
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content=
        "width=device-width, initial-scale=1.0">
    <title>Ready states of a request in ajax</title>
  
    <style>
        #container {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }
    </style>
</head>
  
<body>
    <div id="container">
        <h1>Hey Geek,</h1>
        <h3>Welcome to GeeksforGeek!</h3>
        <button type="button" onclick="stateChange()">
            Update Text
        </button>
    </div>
  
    <script>
        function stateChange() {
            var state = new XMLHttpRequest();
            state.onload = function () {
                document.getElementById("container")
                    .innerHTML = state.getAllResponseHeaders();
            }
            state.open("GET", "gfgInfo.txt", true);
            state.send();
        }
    </script>
</body>
  
</html>

Producción:

 

Propiedades del objeto XMLHttpRequest:

  • onload: define una función de devolución de llamada que se llamará cuando se cargue o reciba la solicitud.
  • onreadystatechange: también define una función de devolución de llamada que se invocará cuando cambie la propiedad readyState .
  • readyState: la propiedad readyState define el estado actual de la solicitud o contiene el estado actual de XMLHttpRequest . Hay cinco estados de una solicitud que se enumeran a continuación.
    • readyState=0: Indica que la solicitud aún no está inicializada.
    • readyState=1: en este estado, se establece la conexión con el servidor y se liquida la solicitud.
    • readyState=2: este estado indica que el servidor recibe la solicitud.
    • readyState=3: esta solicitud se encuentra en un estado de procesamiento en este nivel.
    • readyState=4: la solicitud finaliza o se completa en esta etapa y la respuesta está lista para su uso posterior.
  • responseText: Devolverá los datos recibidos por la solicitud en forma de string.
  • responseXML: Devolverá los datos recibidos por la solicitud en forma de datos XML.
  • estado: Devolverá el número de estado de la solicitud. (es decir, 200 y 404 para OK y NOT FOUND respectivamente)
  • statusText: devolverá el texto de estado en forma de string. (es decir, OK y NO ENCONTRADO para 200 y 404 respectivamente)

Ejemplo: El siguiente ejemplo ilustra el uso de las propiedades del objeto XMLHttpRequest() .

HTML

<!DOCTYPE html>
<html>
  
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content=
        "width=device-width, initial-scale=1.0">
          
    <title>Ready states of a request in ajax.</title>
      
    <style>
        #container {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }
    </style>
</head>
  
<body>
    <div id="container">
        <h1>Hey Geek,</h1>
        <h3>Welcome to GeeksforGeek!</h3>
        <button type="button" onclick="stateChange()">
            Update Text
        </button>
    </div>
  
    <script>
        function stateChange() {
            var state = new XMLHttpRequest();
            state.onload = function () {
                if (this.readyState == 4) {
                    document.getElementById("container").innerHTML =
                        this.responseText + "Status Text: " 
                        + this.statusText;
                }
            };
            state.open("GET", "gfgInfo.txt", true);
            state.send();
        }
    </script>
</body>
  
</html>

Producción:

 

Publicación traducida automáticamente

Artículo escrito por abhisheksainiaggarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *