Foros del Web » Programando para Internet » Javascript » Frameworks JS »

XMLHTTPRequest

Estas en el tema de XMLHTTPRequest en el foro de Frameworks JS en Foros del Web. Buenas, a ver si consigo explicar lo que quiero hacer y si alguien es tan amable de ayudarme. A ver, tengo un script cuya dirección ...
  #1 (permalink)  
Antiguo 21/10/2008, 04:00
 
Fecha de Ingreso: noviembre-2007
Mensajes: 7
Antigüedad: 16 años, 5 meses
Puntos: 0
Mensaje XMLHTTPRequest

Buenas, a ver si consigo explicar lo que quiero hacer y si alguien es tan amable de ayudarme.

A ver, tengo un script cuya dirección sería algo así: http://pagina.aspx?vble1=valor1&vble2=valor2&vble3=valor3 . Lo que necesito es lo siguiente. Se llama a ejecutar a este script con los valores de las variables dadas (vble1, vble2...), la ejecución de este script devuelve un archivo xml cuyo contenido es el siguiente:

<Documentoxml>

<vble1> valor1 </vble1>
<vble2> valor2 </vble2> etc...

</Documentoxml>

Lo que hago es lo siguiente, cojo los parámetros pasados por url con el método GET y genero el documento xml citado. Pero lo que tengo que hacer es conseguir realizar todo esto con el XMLHTTPRequest, y estoy perdidisima. He estado mirando y en todos los sitios lo explican mas o menos igual. Se crea el objeto, se hace el requester.open("GET", "/feed.xml"); (aqui se especifica el método y la url que yo quiero meter es la del script, para luego pasarle tambien los valores de las variables) y despues dice que puedes generar el xml. No se qué código poner exactamente ni cómo generar el xml como yo necesito. Necesitaría por favor que alguien me ayudara. Supongo que lo que pido es posible realizarlo con el XMLHTTPRequest o si no dadme alguna pista de cómo hacerlo. Un saludo y gracias por adelantado!
  #2 (permalink)  
Antiguo 21/10/2008, 08:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: XMLHTTPRequest

Hola achso,

Tal como te indican en varios tutoriales, tienes que crear el objeto, posteriormente haces el send para obtener el XML que te devuelve el servidor y en tu función onreadystatechange lees el responseXML que te da tu servidor y haces el parseo de los datos usando DOM.

El como generes el XML depende de tu servidor y no del XMLHTTPRequest.

Saludos.
  #3 (permalink)  
Antiguo 22/10/2008, 01:19
 
Fecha de Ingreso: noviembre-2007
Mensajes: 7
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: XMLHTTPRequest

Bien, lo que he hecho es lo siguente: He creado dos ficheros uno para el cliente y otro para el servidor. En el del cliente tengo:

Cliente:

// Creamos el objeto XMLHTTPRequest

var xmlHttp;
function CreateXmlHttp()
{
// Probamos con IE
try
{
// Funcionará para JavaScript 5.0
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(oc)
{
xmlHttp = null;
}
}
// Si no se trataba de un IE, probamos con esto
if(!xmlHttp && typeof XMLHttpRequest != "undefined")
{
xmlHttp = new XMLHttpRequest();
}

return xmlHttp;
}

// Enviamos la info al servidor

function envioInfo(txt)
{
// 1.- Creamos el objeto xmlHttpRequest
CreateXmlHttp();

// 2.- Definimos la llamada para hacer un simple GET.
var ajaxRequest = 'receptor.aspx?Info=' + txt;

// 3.- Marcar qué función manejará la respuesta
xmlHttp.onreadystatechange = recogeInfo;

// 4.- Enviar
xmlHttp.open("GET", ajaxRequest, true);
xmlHttp.send("");
}

// Recojo info en el cliente

function recogeInfo()
{
if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
alert(xmlHttp.responseXML);
}
}

En el servidor:

// Tratar info en el servidor

private void recogeInfoServidor()
{
string info = Request.QueryString["info"];
string XML = Request.Form[0];

/**************/
// Tratar INFO
/**************/

HttpResponse response = HttpContext.Current.Response;

response.Clear();
response.ContentType = "text/xml";
response.Write(s);
response.Flush();
response.End();
}

1. ¿Es esto correcto?
2. En el ejemplo que he puesto, la dirección del script se colocaría en ajaxRequest seguida del valor de la primera variable, en este caso txt ¿Tendría que hacer esto para cada una de las variables que paso por la url?
3. Si quiero añadir una variable nueva, llamada Error para ver si los parámetros pasados han sido correctos para incluirla despues en el xml, ¿ésto se tendría que hacer en la parte del servidor? (que es quien comprueba la validez de los datos)
4. En la parte del servidor que genera el xml, ¿podría añadir etiquetas del tipo <et> </et> adicionales?. Me refiero a que si podría declarar como una estructura para el xml que fuera fija aparte de las que tenga que generar segun los parámetros que me lleguen.

Muchas gracias por la ayuda.
  #4 (permalink)  
Antiguo 22/10/2008, 09:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: XMLHTTPRequest

1.- Si, aunque te recomendaría que ocuparas una libreria como prototype, aunque para aprender está bien.
2.- Sí
3.- Sí
4.- Sí, no importa como generes el XML, tu puedes hacer lo que quieras, y después tratarlo con el DOM de Javascript en el cliente, de la misma forma, no hay limitaciones.

Saludos.
  #5 (permalink)  
Antiguo 23/10/2008, 01:17
 
Fecha de Ingreso: noviembre-2007
Mensajes: 7
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: XMLHTTPRequest

Siento seguir dando el coñazo con esto, pero necesito hacer que funcione :)

A ver, para llamar a estos dos ficheros ¿cómo lo hago?. Porque lo que yo quiero es que llamando a mi script (Http://receptor.aspx?Info=txt&vble2= valor2), se realice todo el proceso.

En el código que puse, al hacer function envioInfo(txt) y luego añadirla a la dirección, ¿de dónde toma este valor? pq yo lo que había intentado es algo así en php: $txt = $_GET['Info'], $vble2 = $_GET['valor2'] (para coger el valor que le pasamos por la url). No se si se puede poner el valor de la variable de esta forma: var ajaxRequest = 'Http://receptor.aspx?Info=' + txt.

Un saludo y mil gracias!
  #6 (permalink)  
Antiguo 23/10/2008, 12:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: XMLHTTPRequest

Si lo quieres recoger el valor del URL en Javascript tienes que usar el valor de window.location y parsear los valores manualmente, Javascript no tiene un mecanismo automatico para hacer lo que quieres.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:10.