--- title: XMLHttpRequest slug: Web/API/XMLHttpRequest tags: - AJAX - Todas_las_Categorías - XMLHttpRequest - páginas_a_traducir translation_of: Web/API/XMLHttpRequest ---
XMLHttpRequest
es un objeto JavaScript que fue diseñado por Microsoft y adoptado por Mozilla, Apple y Google. Actualmente es un estándar de la W3C. Proporciona una forma fácil de obtener información de una URL sin tener que recargar la página completa. Una página web puede actualizar sólo una parte de la página sin interrumpir lo que el usuario está haciendo. XMLHttpRequest
es ampliamente usado en la programación AJAX.
A pesar de su nombre, XMLHttpRequest
puede ser usado para recibir cualquier tipo de dato, no solo XML, y admite otros formatos además de HTTP (incluyendo file
y ftp
).
Para crear una instancia de XMLHttpRequest
, debes hacer lo siguiente:
var req = new XMLHttpRequest();
Para obtener más información de cómo usar XMLHttpRequest
, mira Usar XMLHttpRequest.
XMLHttpRequest
por servidor a 6 (las versiones previas limitan a 2 conexiones por servidor). Algunos sitios web interactivos pueden mantener una conexión XMLHttpRequest
abierta, así que abrir múltiples sesiones a esos sitios puede derivar en congelamientos del navegador de una forma que la ventana no se actualiza y los controles no responden. Este valor puede ser cambiado al editar la preferencia network.http.max-persistent-connections-per-server
en about:config
.void abort(); |
string getAllResponseHeaders(); |
ACString getResponseHeader(in AUTF8String header); |
[noscript] void init(in nsIPrincipal principal, in nsIScriptContext scriptContext, in nsPIDOMWindow ownerWindow); |
void open(in AUTF8String method, in AUTF8String url); |
[noscript] void openRequest(in AUTF8String method, in AUTF8String url, in boolean async, in AString user, in AString password); |
void overrideMimeType(in AUTF8String mimetype); |
void send([optional] in nsIVariant body); |
void sendAsBinary(in DOMString body); {{ fx_minversion_inline(3) }} |
void setRequestHeader(in AUTF8String header, in AUTF8String value); |
Atributo | Tipo | Descripción | ||||||||||||||||||
channel |
{{ Interface("nsIChannel") }} | El canal es usado por el objeto cuando se produce el pedido. Esto da null si el canal aún no fue creado. En el caso de un pedido de múltiples partes, este es el canal inicial, no las diferentes partes del pedido múltiple. Es necesario tener privilegios elevados para acceder; sólo lectura. {{ Non-standard_inline() }} |
||||||||||||||||||
mozBackgroundRequest |
booleano |
Indica si el objeto representa o no un pedido de un servicio de fondo. Si es En los casos en que un diálogo de seguridad debe ser mostrado (como en una autentficación o la notificación de un certificado no válido), el pedido simplemente falla. |
||||||||||||||||||
mozResponseArrayBuffer {{ non-standard_inline() }} |
ArrayBuffer |
La respuesta al pedido en la forma de un arreglo de JavaScript. Esto es NULL si el pedido no fue exitoso o si todavía no ha sido enviado. Sólo lectura. | ||||||||||||||||||
multipart |
booleano |
Indica cuando se espera que la respuesta sea o no una serie de mútiples documentos XML. Si se define como Esto permite el uso del push del servidor; para cada documento XML que se escribe para este pedido, se crea un nuevo XMLDOMdocument y se llama al manejador Nota: Cuando esto se elige, el manejador
onload y otros manejadores de eventos no son reiniciados después de que el primer XMLdocument es cargado, y el manejador onload es llamado después de que cada parte de la respuesta es recibida. |
||||||||||||||||||
|
{{ Interface("nsIDOMEventListener") }} |
Una función del objeto JavaScript que se llama cuando el atributo Aviso: Esto no debe ser usado desde código nativo. Tampoco debes usarlo con pedidos sincrónicos.
|
||||||||||||||||||
readyState |
long |
El estado del pedido:
|
||||||||||||||||||
responseText |
AString |
La respuesta al pedido como texto, o null si el pedido no fue exitoso o todavía no se envió. Sólo lectura. |
||||||||||||||||||
responseXML |
nsIDOMDocument |
La respuesta al pedido como un objeto DOM Nota: Si el servidor no aplica el encabezado de tipo de contenido
text/xml , puedes usar overrideMimeType() para forzar a XMLHttpRequest a analizarlo como XML igualmente. |
||||||||||||||||||
status |
unsigned long |
El estado de la respuesta al pedido. Éste es el código HTTPresult (por ejemplo, status es 200 por un pedido exitoso). Sólo lectura. |
||||||||||||||||||
statusText |
AUTF8String |
La cadena de respuesta que devuelve el HTTPserver. A diferencia de status , este incluye el texto completo del mensaje de respuesta ("200 OK ", por ejemplo). Sólo lectura. |
||||||||||||||||||
upload |
{{ Interface("nsIXMLHttpRequestUpload") }} | El proceso de subida puede ser rastreado al agregar un registro de evento a upload . {{ fx_minversion_inline(3.5) }} |
||||||||||||||||||
withCredentials |
booleano |
Indica cuando el pedido de Access-Control entre sitios debe o no ser realizado usando credenciales como cookies o encabezados de autorización. {{ fx_minversion_inline(3.5) }} Nota: Esto nunca afecta los pedidos en para el propio sitio.
El valor predeterminado es |
Aborta el pedido si éste ya fue enviado.
void abort();
Ninguno.
Devuelve todos los encabezados de respuesta como una cadena.
string getAllResponseHeaders();
Ninguno.
El texto de todos los encabezados de respuesta, o null
si no se ha recibido ninguna respuesta.
Devuelve el texto de un encabezado específico.
ACString getResponseHeader( in AUTF8String header );
header
Una cadena que contiene el texto de un encabezado específico, o null
tanto si la respuesta no se ha recibido o el encabezado no existe en la respuesta.
Inicializa el objeto para que sea usado desde código C++.
[noscript] void init( in nsIPrincipal principal, in nsIScriptContext scriptContext, in nsPIDOMWindow ownerWindow );
principal
null
.scriptContext
null
.ownerWindow
null
.Inicializa el pedido. Este método es para ser usado desde código JavaScript, para inicializar un pedido desde código nativo, debes usar openRequest()
.
open()
o openRequest()
ya han sido llamados) es equivalente a usar abort()
.void open( in AUTF8String method, in AUTF8String url, [optional] in boolean async, [optional] in AString user, [optional] in AString password );
method
url
async
true
, que indica si se debe o no realizar la operación de forma asíncrona. Si este valor es false
, el método send()
no se devuelve hasta que se reciba la respuesta completa. Si es true
, la notificación de una transacción completada se proporciona mediante los oyentes de eventos. Esto debe ser true
si el atributo multipart
es verdadero o se lanzará una excepción.user
password
Inicia la peticion, este metodo est
Inicializa la peticion. Este método se utiliza desde el código nativo, para inicializar una solicitud desde el código JavaScript, utilice open ()
en su lugar.
open()
or openRequest()
has already been called) is the equivalent of calling abort()
.void open( in AUTF8String method, in AUTF8String url, in boolean async, in AString user, in AString password );
method
url
async
true
, indicating whether or not to perform the operation asynchronously. If this value is false
, the send()
method does not return until the response is received. If true
, notification of a completed transaction is provided using event listeners. This must be true if the multipart
attribute is true
, or an exception will be thrown.user
password
Overrides the MIMEtype returned by the server.
send()
.void overrideMimeType( in AUTF8String mimetype );
mimetype
Sends the request. If the request is asynchronous (which is the default), this method returns as soon as the request is sent. If the request is synchronous, this method doesn't return until the response has arrived.
send()
.void send( [optional] in nsIVariant body );
body
nsIDocument
, nsIInputStream
, or a string (an nsISupportsString
if called from native code) that is used to populate the body of a POST request. Starting with Gecko 1.9.2, you may also specify an DOM{{ domxref("File") }} , and starting with Gecko 2.0 {{ geckoRelease("2.0") }} you may also specify a FormData
object.If the body is an nsIDOMDocument
, it is serialized before being sent.
If it's an nsIInputStream
, it must be compatible with nsIUploadChannel
's setUploadStream()
method. In that case, a Content-Length header is added to the request, with its value obtained using nsIInputStream
's available()
method. Any headers included at the top of the stream are treated as part of the message body. The stream's MIMEtype should be specified by setting the Content-Type header using the setRequestHeader()
method prior to calling send()
.
A variant of the send()
method that sends binary data.
void sendAsBinary( in DOMString body );
body
Sets the value of an HTTPrequest header.
open()
before using this method.void setRequestHeader( in AUTF8String header, in AUTF8String value );
header
value
XMLHttpRequest
is implemented in Gecko using the {{ interface("nsIJSXMLHttpRequest") }} and {{ interface("nsIXMLHttpRequest") }} interfaces.
FormData
{{ languages( { "es": "es/XMLHttpRequest", "fr": "fr/XMLHttpRequest", "it": "it/XMLHttpRequest", "ja": "ja/XMLHttpRequest", "ko": "ko/XMLHttpRequest", "pl": "pl/XMLHttpRequest", "zh-cn": "cn/XMLHttpRequest" } ) }}