El objeto XMLHttpRequest se utiliza para intercambiar datos con el servidor.
Para enviar una solicitud al servidor, utilizamos los métodos open() y send() del objeto XMLHttpRequest:
xmlhttp.open("GET","ajax_info.txt",true);xmlhttp.send();
método | describir |
---|---|
abierto ( método , URL , asíncrono ) | Especifica el tipo de solicitud, la URL y si se debe manejar la solicitud de forma asincrónica. método : tipo de solicitud; GET o POST URL : La ubicación del archivo en el servidor. async : verdadero (asincrónico) o falso (sincrónico) |
enviar ( cadena ) | Envía la solicitud al servidor. cadena : solo se usa para solicitudes POST |
GET es más simple y rápido que POST y funciona en la mayoría de situaciones.
Sin embargo, utilice solicitudes POST en las siguientes situaciones:
No se pueden utilizar archivos en caché (actualizar archivos o bases de datos en el servidor)
Envíe grandes cantidades de datos al servidor (POST no tiene límite de tamaño de datos)
POST es más estable y confiable que GET cuando envía entradas del usuario que contienen caracteres desconocidos
Una simple solicitud GET:
En el ejemplo anterior, es posible que obtenga resultados almacenados en caché.
Para evitar esto, agregue una identificación única a la URL:
Si desea enviar información mediante el método GET, agregue la información a la URL:
Una simple solicitud POST:
Si necesita PUBLICAR datos como un formulario HTML, use setRequestHeader() para agregar encabezados HTTP. Luego especifique los datos que desea enviar en el método send():
método | describir |
---|---|
setRequestHeader( encabezado,valor ) | Agregue encabezados HTTP a la solicitud. encabezado : especifica el nombre del encabezado valor : especifica el valor del encabezado |
El parámetro de URL del método open() es la dirección del archivo en el servidor:
xmlhttp.open("GET","ajax_test.html",true);
El archivo puede ser cualquier tipo de archivo, como .txt y .xml, o un archivo de script del servidor, como .asp y .php (que puede realizar tareas en el servidor antes de enviar la respuesta).
AJAX se refiere a JavaScript y XML asincrónicos.
Si el objeto XMLHttpRequest se va a utilizar para AJAX, el parámetro async de su método open() debe establecerse en verdadero:
xmlhttp.open("GET","ajax_test.html",true);
Para los desarrolladores web, enviar solicitudes asincrónicas es una gran mejora. Muchas tareas realizadas en el servidor consumen bastante tiempo. Antes de AJAX, esto podía provocar que la aplicación se bloqueara o se detuviera.
Con AJAX, JavaScript no necesita esperar una respuesta del servidor, sino que:
Ejecute otros scripts mientras espera la respuesta del servidor
Procesar la respuesta cuando esté lista
Cuando use async=true, especifique una función que se ejecutará en respuesta al estado listo en el evento onreadystatechange:
Aprenderá más sobre onreadystatechange en un capítulo posterior.
Si desea utilizar async=false, cambie el tercer parámetro en el método open() a false:
xmlhttp.open("GET","test1.txt",falso);
No recomendamos usar async=false, pero para algunas solicitudes pequeñas, es posible.
Recuerde, JavaScript espera hasta que la respuesta del servidor esté lista antes de continuar. Si el servidor está ocupado o es lento, la aplicación se bloquea o se detiene.
Nota: Cuando utilice async=false, no escriba la función onreadystatechange; simplemente coloque el código después de la instrucción send():