Cómo utilizar el objeto XMLHttpRequest en javascript
Puede parecer a primera vista que javascript de XMLHttpRequest
objeto es intensamente complicado, pero en realidad no lo es si se toma aparte y ver un poco a la vez. En realidad, la mayoría de los desarrolladores utilizan sólo unos pocos métodos y propiedades conocidas. Sin embargo, es muy posible que los desarrolladores usarían más características de este objeto si sabían que existían.¿Cómo trabajar con la solicitud
Para obtener recursos del servidor, debe hacer una solicitud. Después de todo, el servidor no ha leído la mente. Usted construye una solicitud mediante el uso de métodos y propiedades, y luego utiliza el send () método para transmitir la solicitud que se ha construido. La siguiente lista describe las propiedades que normalmente se asocian con las peticiones:
se acabó el tiempo: Determina el tiempo, en milisegundos, que la solicitud continuará tratando de obtener un recurso necesario desde el servidor.
withCredentials: Especifica que la solicitud debe incluir las credenciales del usuario cuando se establece en cierto. Las credenciales permiten el acceso para asegurar los recursos en el servidor.
subir: Proporciona el servidor con un XMLHttpRequestUpload objeto que contiene los datos del servidor requiere para cumplir con una solicitud.
Ahora que usted tiene una mejor idea de qué propiedades están disponibles para hacer una petición, es el momento de mirar a los métodos. Los siguientes métodos son generalmente asociados con la fabricación de una petición de algún tipo:
open (): Crea una nueva solicitud. La solicitud puede incluir una serie de argumentos que se definen en la siguiente lista en el orden que les proporciona:
método: Determina el método utilizado para acceder al recurso. Las dos opciones son válidos OBTENER y POSTE.
URL: Especifica la ubicación del recurso en el servidor.
asincrónico: Determina si la solicitud se realiza de forma síncrona o asíncrona. El llamador debe proporcionar una función de devolución de llamada cuando este indicador se establece en true (para una solicitud asincrónica).
nombre de usuario: Contiene el nombre de inicio de sesión del usuario para el acceso a los recursos seguros.
clave: Contiene la contraseña del usuario para el acceso a los recursos seguros.
setRequestHeader (): Crea un par nombre / valor para incluir el encabezado de la solicitud. Usted provee el nombre y valor como dos argumentos separados que la llamada utiliza para crear la entrada de encabezado de solicitud.
send (): Transmite la petición al servidor. Suena simple, pero una serie de características están en su lugar para hacer el proceso más fiable. Usted puede leer acerca de todo el proceso. Sin embargo, desde la perspectiva de un desarrollador, ¿cómo send () las obras no es tan importante como lo send () devoluciones. los send () Cualquiera de los métodos devuelve datos o un error. Aquí están los cuatro errores más comunes:
la red: Algo ha pasado para detener la solicitud de alcanzar el servidor. En algunos casos, un error del sistema de nombres de dominio (DNS) hace que la petición que se pierda antes de que llegue al servidor. En otros casos, se produce un error de Transport Layer Security (TLS), lo que significa que su aplicación no puede tener las credenciales necesarias.
abortar: El usuario final ha cancelado su pedido. Para producir este error, la aplicación debe llamar al abortar () método.
se acabó el tiempo: La solicitud ha vagado por buscar el recurso que necesita y finalmente abandonado. Las solicitudes tienen un valor de tiempo de espera asociado con ellos. De lo contrario, la solicitud podría seguir buscando un recurso indefinidamente si no existe ese recurso.
petición: Hay un problema con la solicitud. Normalmente tiene que cavar más profundo para averiguar exactamente cuál es el problema. Sin embargo, hay una serie de causas comunes, como: solicitar un recurso inexistente, no proporcionar un argumento necesario, y proporcionar información del tipo incorrecto.
abortar (): Detiene la ejecución de la petición actual.
¿Cómo trabajar con la respuesta
los XMLHttpRequest objeto también ofrece una serie de propiedades de respuesta y los métodos que se utilizan para determinar el éxito o el fracaso de una solicitud. Estas son las propiedades que se utilizan comúnmente cuando se trabaja con este objeto:
estado: Devuelve el código de estado HTTP. Un código de estado 200 significa que la solicitud completada con éxito. Cualquier otro tipo de código normalmente refleja algún tipo de problema con el proceso de solicitud. Aquí está una lista de los códigos de estado.
statusText: Devuelve el estado HTTP como un valor textual. Por ejemplo, un código de estado de 200 devuelve un valor de texto de OK. Aquí está una lista de valores de texto de estado y sus códigos asociados.
readyState: Especifica el estado actual de procesamiento asincrónico. El estado puede ser uno de estos valores:
0Solicitud no inicializado
1: Conexión de servidor establecido
2: Solicitud recibida
3: Solicitud de Procesamiento
4Solicitud terminado y la respuesta está listo
responseType: Devuelve el valor de la Tipo de contenido cabecera de respuesta. Una aplicación puede utilizar este valor para determinar cómo reaccionar ante el tipo de respuesta que el servidor ha enviado. Los tipos de retorno comunes son
"": Una cadena vacía indica que el tipo de retorno es desconocido o que se ha producido un error y no hay respuesta a procesar.
ArrayBuffer: Los datos están en la forma de una matriz.
gota: El emisor ha utilizado un objeto grande binario (BLOB) para almacenar los datos.
documento: Los datos aparecen de información estructurada en un documento XML. Normalmente, el documento sea completa, en lugar de un fragmento de XML.
json: El emisor ha utilizado javascript Object Notation (JSON) para encapsular los datos.
texto: La información que aparece como texto plano, lo cual puede significar que carece de contexto y estructura. Sin embargo, algunos formatos de texto se estructuran, como variable separados por comas (CSV).
respuesta: Contiene toda la respuesta sin ninguna interpretación como un objeto.
responseText: Contiene sólo el texto de una respuesta cuando el responseType valor es "" (la cadena vacía) o texto. Esta propiedad devuelve nada por otra responseType los valores.
responseXML: Contiene sólo el documento XML cuando el responseType valor es "" (la cadena vacía) o documento. Esta propiedad devuelve nada por otra responseType los valores.
Los métodos de respuesta ayudarán a interactuar con los datos de respuesta de alguna manera. Estos son los métodos de respuesta:
getResponseHeader (): Obtiene un valor específico cabecera de la respuesta del objeto respuesta. Usted suministra el valor de la cabecera de la respuesta que desee, como por ejemplo Tipo de contenido, como argumento para el método. No hay encabezados de respuesta requeridos, y un servidor pueden crear encabezados personalizados.
getAllResponseHeaders (): Crea una matriz de todas las cabeceras de respuesta, salvo los que se enumeran como Set-Cookie o Set-Cookie2.
overrideMimeType (): Especifica el valor de la Tipo de contenido cabecera de respuesta.