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

Problema con el objeto XMLHttpRequest

Estas en el tema de Problema con el objeto XMLHttpRequest en el foro de Frameworks JS en Foros del Web. Hola, Tengo una instruccion: Código: peticion01=new ConstructorXMLHttpRequest() que llama a l siguiente codigo javascript Código: function ConstructorXMLHttpRequest() { if (window.XMLHttpRequest) /* Vemos si el objeto ...
  #1 (permalink)  
Antiguo 05/07/2010, 09:47
 
Fecha de Ingreso: mayo-2007
Mensajes: 222
Antigüedad: 17 años
Puntos: 0
Problema con el objeto XMLHttpRequest

Hola,

Tengo una instruccion:

Código:
 peticion01=new ConstructorXMLHttpRequest()
que llama a l siguiente codigo javascript


Código:
function ConstructorXMLHttpRequest()
{
    if (window.XMLHttpRequest) /* Vemos si el objeto window (la
                                                    base de la ventana
                                * del navegador) posee el metodo, como es en Mozilla y
                                    Safari*/
     {
         
         return new XMLHttpRequest();  // Si lo tiene , crearemos el objeto con este metodo.
 }
     else  if (window.ActiveObject)  /* si no tenia el metodo anterior, deberia ser el Internet Explorer, un navegador
                                      que emplea objetos ActiveX, lo mismo, miramos si tiene el metodo de creacion.  */
    {
        /* HAy diferentes versiones del objeto, creamos un array, que contiene los diferentes tipos desde la version más reciente, hasta la mas antigua*/
        var versionesObj=new Array('Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP',
                                  'Microsoft.XMLHTTP')

                               for (var i=0; i< versionesObj.length;i++)
                                   {
                                       try
                                       {
                                           /* Intentamos devolver el objeto intentando crear las
                                             * diferentes versiones
                                            * se puede intentar crear uno que no existe y se
                                             * producira un error*/
                                            return new ActiveXObject (versionesObj[i])
                                       }
                                       catch (errorControlado) // capturamos el error, ya que podría crearse otro objeto
                                       {
                                       }
                                   }
    }

    /* Si el navegador llego aquí es porque no posee manera alguna de crear el objeto, emitimos iun mensaje de error*/
    throw new Error("No se pudo crear el objeto XMLHttpRequest");
}

El problema es que cuando que cuando clicko al boton, no me sale el resultado que ha de salir.

Probandolo con IE8, el debugger me dice que la instruccion
Código:
 return new XMLHttpRequest();
no es valida por todos los navegadores marcados.

Segun el codigo que he creado esta instruccion solo debería ejecutarse, para Mozilla por lo que cuando ejecuto en IE8, no deberia de ejecutarse ese IF. Entonces, ¿porque se ejecuta?

Agradeceria que alguien me ayudara a resolver este problema. Pido perdon por adelantado, si la duda es tonta, pero es que soy un novato en Ajax, y esa duda me esta bloqueando el aprendizaje.

Un saludo y gracias
  #2 (permalink)  
Antiguo 05/07/2010, 12:31
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Problema con el objeto XMLHttpRequest

Hola

Con esta no tendrás problemas

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 07/07/2010, 07:38
 
Fecha de Ingreso: mayo-2007
Mensajes: 222
Antigüedad: 17 años
Puntos: 0
Respuesta: Problema con el objeto XMLHttpRequest

Hola adler,

Lamentablemente tu respuesta no me ha resuelto el problema,

cuando debuggeo me dice, en la linea
Código:
ajax = new ActiveXObject(ajaxs[i])
, que: ActiveXObject is not defined


Un saludo cordial
  #4 (permalink)  
Antiguo 07/07/2010, 12:18
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Problema con el objeto XMLHttpRequest

Hola

Cita:
Iniciado por bladu Ver Mensaje
Hola adler,

Lamentablemente tu respuesta no me ha resuelto el problema,

cuando debuggeo me dice, en la linea
Código:
ajax = new ActiveXObject(ajaxs[i])
, que: ActiveXObject is not defined


Un saludo cordial
Pues sí que me sorprende lo me dices, puesto es el que uso en todos mis proyectos y hasta ahora no se ha quejado

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 08/07/2010, 01:14
 
Fecha de Ingreso: mayo-2007
Mensajes: 222
Antigüedad: 17 años
Puntos: 0
Respuesta: Problema con el objeto XMLHttpRequest

Cita:
Iniciado por Adler Ver Mensaje
Hola



Pues sí que me sorprende lo me dices, puesto es el que uso en todos mis proyectos y hasta ahora no se ha quejado

Suerte

¿Quizas hay que activar alguna opcion en la configuración de los navegadores, que viene desactivada por defecto?
  #6 (permalink)  
Antiguo 08/07/2010, 03:49
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Problema con el objeto XMLHttpRequest

Hola

No tienes que hacer nada. Solo traer la función a una variable

Código Javascript:
Ver original
  1. var ajax=creaAjax();
  2. ajax.open('POST',url,true);
  3. ajax.onreadystatechange = function() {

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Etiquetas: ajax, objeto, xmlhttprequest
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 13:48.