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

Error ajax en IE7 e IE8

Estas en el tema de Error ajax en IE7 e IE8 en el foro de Frameworks JS en Foros del Web. Tengo el siguiente JavaScript Código: function ConstructorXMLHttpRequest() { if(window.XMLHttpRequest) /*Vemos si el objeto window(la base de la ventana del navegador) posee el método XMLHttpRequest(Navegadores como ...
  #1 (permalink)  
Antiguo 18/11/2008, 11:57
 
Fecha de Ingreso: noviembre-2008
Ubicación: Guadalajara, Concepcion de Buenos Aires, Mexico
Mensajes: 60
Antigüedad: 15 años, 5 meses
Puntos: 1
Error ajax en IE7 e IE8

Tengo el siguiente JavaScript

Código:
function ConstructorXMLHttpRequest()
{
if(window.XMLHttpRequest) /*Vemos si el objeto window(la base de la ventana del navegador) posee el método XMLHttpRequest(Navegadores como Mozilla y Safari). */
{
return new XMLHttpRequest(); //Si lo tiene, crearemos el objeto con este método.
}
else if(window.ActiveXObject) /*Sino tenía el método anterior, debería ser el Internet Exp. un navegador que emplea objetos ActiveX, lo mismo, miramos si tiene el método de creación. */
{
/*Hay diferentes versiones del objeto, creamos un array, que contiene los diferentes tipos desde la
versión mas 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 producirá 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 un mensaje de error. */
throw new Error("No se pudo crear el objeto XMLHttpRequest");
}
Pero en FireFox si me funciona bien, pero en IE 7 y 8 no me funciona hasta que presiono F5, ¿por que? alguien que me diga como hacer para que si funcione en IE 7 y 8 porque en el 6 si funciona bien.

a este lo llamo a cualquier pagina con
Código:
<script type="text/javascript" src="ConstructorXMLHttpRequest.js"></script>
y en mis paginas:
Código:
var peticion01 = null; 
peticion01 = new ConstructorXMLHttpRequest();
y

Código:
function estadoPeticion() //Función que se llama cada vez que cambia el estado de peticion01.readyState.
{
switch(peticion01.readyState) //Según el estado de la petición devolvemos un Texto.
{
case 0:
document.getElementById('estado').innerHTML = "Sin iniciar";
break;
case 1:
document.getElementById('estado').innerHTML = "Cargando";
break;
case 2:
document.getElementById('estado').innerHTML = "Cargado";
break;
case 3:
document.getElementById('estado').innerHTML = "Interactivo";
break;
case 4:
document.getElementById('estado').innerHTML = "Completado";
//Si ya hemos completado la petición, devolvemos además la información.
document.getElementById('resultado').innerHTML = peticion01.responseText;
break;
}
}
function Coger(url) //Función coger, en esta caso le entra una dirección relativa al documento actual.
{
if(peticion01) //Si tenemos el objeto peticion01
{
peticion01.open('GET', url, true); //Abrimos la url, true=forma asíncrona
/*Asignamos la función que se llama cada vez que cambia el estado de peticion01.readyState
Y LO HACEMOS ANTES THE HACER EL SEND porque inicia la transmisión.*/
peticion01.onreadystatechange = estadoPeticion;
peticion01.send(null); //No le enviamos datos a la pagina que abrimos.
}
}

hay algun error, por que en FireFox si funciona pero en IE7 y 8 no funciona hasta que presiono F5 o actualizo la pagina.

¿como solucionar esto?
  #2 (permalink)  
Antiguo 05/07/2010, 17:24
 
Fecha de Ingreso: julio-2010
Mensajes: 2
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Error ajax en IE7 e IE8

HOLA

¿resolviste el tema este? Yo estoy igual.
  #3 (permalink)  
Antiguo 05/07/2010, 17:52
 
Fecha de Ingreso: julio-2010
Mensajes: 2
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Error ajax en IE7 e IE8

Me respondo a mi mismo para cualquiera que este en esta situacion

Despues de muchas horas y mucho googlear en mil idiomas, resulta que el problema esta en IE8, en un tag que hemos puesto en el lugar equivocado. ¿a que teneis puesto un <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> despues del script, a que si eh!. Pues con moverlo justo depues de title se soluciona el cristo este.

UN SALUDO A TODOS!
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 09:09.