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

AJAx no funciona con IE

Estas en el tema de AJAx no funciona con IE en el foro de Frameworks JS en Foros del Web. Hola a todos!!! Mi problema, es que de repente ha dejado de funcionar unos combos dependientes en IE, funciona en safari y opera y ff, ...
  #1 (permalink)  
Antiguo 30/07/2007, 01:46
 
Fecha de Ingreso: marzo-2007
Mensajes: 47
Antigüedad: 17 años, 8 meses
Puntos: 0
AJAx no funciona con IE

Hola a todos!!!
Mi problema, es que de repente ha dejado de funcionar unos combos dependientes en IE, funciona en safari y opera y ff, he estado mirando por foros y la solucion que daban era añadir la cabecera cuando devolvia el los datos desde el servidor: y puse:
response.setContentType("text/xml; charset=iso-8859-1");
response.setHeader("Cache-Control", "no-cache");
out.println("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>");

bueno, pues resulta que tengo 3 combos dependientes y así los dos primeros funcionan, ahora el problema es el 3º y hago exactamente lo mismo... seguí mirando e indican que añada la hora a la url:

var url="<%=usuario.getRuta()%>FormInsertarFichaProc?i dCap="+capitulo.value+"&ms="+new Date().getTime();

pues aún así no tira...
Estoy un poco desesperada, si alguien pudiera echarme una manita. se lo agradecería enormement...

aquí dejo mi código para que le echen un vistazo....


var conexion1=false;
//carga el combo de articulos cuando el combo de capitulos ha cambiado
function cargarArticulo()
{
var capitulo = document.getElementById("capitulo");
//esta será nuestra petición
var url="<%=usuario.getRuta()%>FormInsertarFichaProc?i dCap="+capitulo.value+"&ms="+new Date().getTime();
try
{
// Creacion del objeto AJAX para navegadores no IE
conexion1=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
// Creacion del objet AJAX para IE
conexion1=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E)
{
if (!conexion1 && typeof XMLHttpRequest!="undefined")
{
conexion1=new XMLHttpRequest();
}
}
}
if (!conexion1)
alert(" problemas conexion");
//asociamos un metodo alevento que se ejecuta a medida que vaya leyendo el XML
conexion1.onreadystatechange = procesarEvento;
//pedimos el xml
conexion1.open("GET", url, true);

//no enviamos nada y termina
conexion1.send(null);
}
//carga combo subapartado cuando cambia de valor el combo de capitulos y apartados
function cargarSubApartado()
{
var capitulo = document.getElementById("capitulo");
var apartado = document.getElementById("apartado");
alert("capitulo "+ capitulo +" apartado "+ apartado);
//esta será nuestra petición
var url="<%=usuario.getRuta()%>FormInsertarFichaProc?i dCap="+formulario.capitulo.value+"&idApa="+formula rio.apartado.value+"&ms="+new Date().getTime();
//no nos creamos el objeto porque lo hemos hecho previamente
alert("envio al servidor");
conexion1.onreadystatechange = procesarEventoSub;
//pedimos el xml
if ( ! conexion1)
alert(" No esta utilizando la parte de ajax ");
conexion1.open("POST", url, true);
//no enviamos nada y termina
conexion1.send(null);
}

function procesarEvento()
{

if(conexion1.readyState == 4)
{
if (conexion1.status == 200)
{
//aquí obtendríamos el valor del formulario
procesarResultadoArticulo();
}
}
}
//realiza la carga del combo articulo
function procesarResultadoArticulo()
{
var i=0;
//obtenemos el XML
var response=conexion1.responseXML.documentElement;
//obtenemos de nuestro HTML la zona donde escribiremos el resultado
var comboArticulo=document.getElementById("apartado");
var apartados=response.getElementsByTagName("apartado" );
comboArticulo.options.length=apartados.length;
for(i=0;i<=apartados.length;i++)
{
var apar=apartados[i];
comboArticulo.options[i].value=apar.getAttribute("id");
comboArticulo.options[i].innerHTML=apar.firstChild.data;
}
}
function procesarEventoSub()
{

if(conexion1.readyState == 4)
{

if (conexion1.status == 200)
{

//aquí obtendríamos el valor del formulario
procesarResultadoSub();
}
}
}
//realiza la carga del combo supapartado
function procesarResultadoSub()
{
var j=0; //obtenemos el XML

var response=conexion1.responseXML;
var comboSub=document.getElementById("subapartado");
var subarticulos=response.getElementsByTagName("subapa rtado");

comboSub.options.length=subarticulos.length;
for(j=0;j<=subarticulos.length;j++)
{
var suba=subarticulos[j];
comboSub.options[j].value=suba.getAttribute("id");
comboSub.options[j].innerHTML=suba.firstChild.data;
}
}


Muchas gracias...
  #2 (permalink)  
Antiguo 31/07/2007, 08:59
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 6 meses
Puntos: 35
Re: AJAx no funciona con IE

loading...........

Podrías tomarte la molestia de
  1. Identar tu código
  2. Ponerlo entre etiquetas [ PHP ] code [ /PHP ]
Asi se te ayudara mejor y te ayudas a ti mismo para tener un orden en tu desarrollo. No programes con las patas!!!.


connection closed.
__________________

Maborak Technologies
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 01:47.