<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Enviando_solicitudes_con_XMLHttpRequest</id>
	<title>Enviando solicitudes con XMLHttpRequest - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Enviando_solicitudes_con_XMLHttpRequest"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Enviando_solicitudes_con_XMLHttpRequest&amp;action=history"/>
	<updated>2026-10-21T11:23:32Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Enviando_solicitudes_con_XMLHttpRequest&amp;diff=3638&amp;oldid=prev</id>
		<title>Veiga: /* Ejecutando la solicitud */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Enviando_solicitudes_con_XMLHttpRequest&amp;diff=3638&amp;oldid=prev"/>
		<updated>2008-01-23T23:56:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Ejecutando la solicitud&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Desde el momento que tenemos creado nuestro objeto XMLHttpRequest podemos comenzar el ciclo de peticiones/respuestas.&lt;br /&gt;
&lt;br /&gt;
Recordad que &amp;#039;&amp;#039;&amp;#039;el único propósito de este objeto es enviar solicitudes y recibir respuestas&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Cualquier otra cosa como – cambiar el interfaz de usuario, intercambiar imágenes, interpretar los datos recibidos, etc.. – es trabajo de &amp;#039;&amp;#039;&amp;#039;Javascript, CSS&amp;#039;&amp;#039;&amp;#039; o bien cualquier otro código que tengamos en nuestras páginas. &lt;br /&gt;
&lt;br /&gt;
== Bienvenido a la Caja Negra. ==&lt;br /&gt;
&lt;br /&gt;
Ajax dispone de un &amp;#039;&amp;#039;&amp;#039;modelo de seguridad&amp;#039;&amp;#039;&amp;#039;. Como resultado de dicho modelo (y específicamente del objeto XMLHttpRequest) &amp;#039;&amp;#039;&amp;#039;solamente se podrán realizar solicitudes al mismo dominio dónde se está ejecutando la aplicación Ajax&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Indicando la URL del servidor ==&lt;br /&gt;
&lt;br /&gt;
Lo primero que debemos conocer es la URL del servidor al cuál nos queremos conectar y dónde se encuentran nuestras páginas php.&lt;br /&gt;
&lt;br /&gt;
El listado 6 muestra cómo construir una URL en la que se envían datos formando parte de dicha URL (método GET).&lt;br /&gt;
&lt;br /&gt;
== Listado 6. Construyendo una URL ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
   var request = false;&lt;br /&gt;
   try {&lt;br /&gt;
     request = new XMLHttpRequest();&lt;br /&gt;
   } catch (trymicrosoft) {&lt;br /&gt;
     try {&lt;br /&gt;
       request = new ActiveXObject(&amp;quot;Msxml2.XMLHTTP&amp;quot;);&lt;br /&gt;
     } catch (othermicrosoft) {&lt;br /&gt;
       try {&lt;br /&gt;
         request = new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;);&lt;br /&gt;
       } catch (failed) {&lt;br /&gt;
         request = false;&lt;br /&gt;
       }  &lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   if (!request)&lt;br /&gt;
     alert(&amp;quot;Error inicializando XMLHttpRequest!&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
   function obtenerInfoCliente() {&lt;br /&gt;
     var phone = document.getElementById(&amp;quot;telefono&amp;quot;).value;&lt;br /&gt;
     var url = &amp;quot;buscarcliente.php?telefono=&amp;quot; + escape(telefono);&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sentencia escape ()==&lt;br /&gt;
&lt;br /&gt;
Cuando se envían datos por el método GET el script recibe los datos como una cadena adjunta a la URL original, en la cual algunas secuencias de caracteres han de interpretarse como caracteres especiales, como el espacio en blanco o el separador entre variable y valor.&lt;br /&gt;
&lt;br /&gt;
Los caracteres escritos en dicha notación se llaman sequenze escape y utilizan la codificación URL en la cual:&lt;br /&gt;
 &lt;br /&gt;
#los pares nombre=valor están separados por &amp;amp;; &lt;br /&gt;
#los espacios se sustituyen con +; &lt;br /&gt;
#los caracteres alfanuméricos son sustituidos por el equivalente hexadecimal precedido de %. &lt;br /&gt;
&lt;br /&gt;
Empleando la sentencia escape(valor) convertiremos al formato de la URL los caracteres especiales que estén dentro de dicho valor.&lt;br /&gt;
&lt;br /&gt;
Veamos el listado:&lt;br /&gt;
&lt;br /&gt;
El código anterior creará una variable llamada phone que contendrá el valor del campo teléfono de nuestro formulario. &lt;br /&gt;
&lt;br /&gt;
Véase el listado 7 del formulario. Fijarse en los id de los campos..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Listado 7. El formulario ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;&amp;lt;img src=&amp;quot;pizzahut.jpg&amp;quot; alt=&amp;quot;Pizza Hut Pizza&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;form action=&amp;quot;POST&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Introduzca su n&amp;amp;uacute;mero:&lt;br /&gt;
     &amp;lt;input type=&amp;quot;text&amp;quot; size=&amp;quot;14&amp;quot; name=&amp;quot;telefono&amp;quot; id=&amp;quot;telefono&amp;quot; &lt;br /&gt;
           onChange=&amp;quot;obtenerInfoCliente();&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Su pizza ser&amp;amp;aacute; entregada en la direcci&amp;amp;oacute;n:&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;div id=&amp;quot;address&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;Escriba su solicitud aqu&amp;amp;iacute;:&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;&amp;lt;textarea name=&amp;quot;solicitud&amp;quot; rows=&amp;quot;6&amp;quot; cols=&amp;quot;50&amp;quot; id=&amp;quot;solicitud&amp;quot;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;
   &amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Pedir una Pizza&amp;quot; id=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&lt;br /&gt;
 &amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cuando los clientes introducen su teléfono o modifican el número del mismo se llamará a la función &amp;#039;&amp;#039;&amp;#039;obtenerInfoCliente()&amp;#039;&amp;#039;&amp;#039; mostrada en el listado 7. &lt;br /&gt;
&lt;br /&gt;
Esta function lo que realiza es capturar el teléfono que tenemos en ese campo del formulario y lo utiliza para construir la URL que llamará a nuestra aplicación php que se encarga de buscar la dirección del cliente.&lt;br /&gt;
&lt;br /&gt;
Recordar una vez más que Ajax solamente podrá conectar con URL almacenadas en el mismo dominio  por lo que no es necesario indicar el dominio en la URL.&lt;br /&gt;
&lt;br /&gt;
Y recordamos una vez más que el método escape() se emplea para codificar caracteres especiales como espacios en blanco (que los convertirá en (%20), para que puedan ser enviados correctamente en la URL.&lt;br /&gt;
&lt;br /&gt;
Podríamos añadir todos los parámetros que queramos a la URL simplemente separando por &amp;amp;parámetro2=valor&amp;amp;parámetro3=valor… Indicar que el primer parámetro irá separa por ? En vez de &amp;amp;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ejecutando la solicitud ==&lt;br /&gt;
&lt;br /&gt;
Una vez que ya tenemos la URL codificada, podemos configurar su ejecución mediante el &amp;#039;&amp;#039;&amp;#039;método open(&amp;#039;&amp;#039;&amp;#039;) del objeto &amp;#039;&amp;#039;&amp;#039;XMLHttpRequest&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Este método tiene hasta 5 parámetros posibles:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;request-type&amp;#039;&amp;#039;&amp;#039;: El tipo de solicitud a enviar. Valores típicos son GET o POST, aunque se pueden enviar cabeceras HEAD.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;url&amp;#039;&amp;#039;&amp;#039;: La URL a la que queremos conectar..&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;asynch&amp;#039;&amp;#039;&amp;#039;: true si queremos que sea una solicitud asíncrona y false si queremos que sea síncrono. Por defecto es true. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;username&amp;#039;&amp;#039;&amp;#039;: Si se necesita autenticación para acceder a la página php. Es un parámetro opcional.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;password&amp;#039;&amp;#039;&amp;#039;: Contraseña para la autenticación anterior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tipicalmente veremos solamente los 3 primeros parámetros. De hecho usaremos casi siempre los tres primeros.&lt;br /&gt;
&lt;br /&gt;
Veamos el código con el método open en el listado 8.&lt;br /&gt;
&lt;br /&gt;
== Listado 8. Abrimos la solicitud == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
function obtenerInfoCliente() {&lt;br /&gt;
     var phone = document.getElementById(&amp;quot;phone&amp;quot;).value;&lt;br /&gt;
     var url = &amp;quot; buscarcliente.php?telefono=&amp;quot; + escape(phone);&lt;br /&gt;
     request.open(&amp;quot;GET&amp;quot;, url, true);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Veiga</name></author>
	</entry>
</feed>