Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/08/2008, 17:50
rickymax
 
Fecha de Ingreso: febrero-2007
Ubicación: Ecuador
Mensajes: 23
Antigüedad: 17 años, 2 meses
Puntos: 0
ajax no funciona en firefox

hola sucede que soy nuevo en ajax a pesar de ello creo que esta semana ya he logrado muchos avances y de una u otra manera ya estoy apto para seguir enrolado en AJAX

SUCEDE QUE CARGO UNOS COMBOS Y EL CONTENIDO DE UNOS DIVS USANDO AJAX y me funciona perfecto en el internet explorer mientras que el firefox no sale nada no se despliega la informacion (la version de firefox que uso es la ultima me la descargue hace 2 dias ).

No se que pasa tengo activado javascipt en firefox y nada.

Mi arquitectura de mi aplicacion es la siguiente.

Por un lado tengo mis paginas html en un servidor web 1 y por otro tengo mi aplicacion web en java 2JEE en otro servidor 2, sucede que a traves de ajax realizo peticiones a mis servlets publicados indicandole al objeto XMLHTMLRequest en el metodo open() la url indicada por ejemplo http://200.107.23.34:8284/miapp/miservlet

donde miservlet es el nombre del servler al que realizo peticiones este me consulta mi bdd y otras cosas luego me envia como respuesta un xml y lo proceso con DOM.


es algo asi:

window.onload = function() {
cargaAreas();
}


function cargaAreas()
{
ajax = nuevoAjax();
if (ajax) {
ajax.onreadystatechange = muestraAreas;
ajax.open("POST","http://200.107.23.34:8284/miapp/miservlet", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send(null);
}
}
function muestraAreas()
{
if (ajax.readyState == 4) {
if (ajax.status == 200) {
var lista = document.getElementById("cmb_areas");
var documento_xml = ajax.responseXML;
var ars = documento_xml.getElementsByTagName("areas");

var areas = ars[0];
var lasAreas = areas.getElementsByTagName("area");
lista.options[0] = new Option("- selecciona -");
// Metodo 1: Crear elementos Option() y aniadirlos a la lista
for(i=0; i<lasAreas.length; i++) {

var codigo =lasAreas[i].getElementsByTagName("codigo")[0].firstChild.nodeValue;
var nombre =lasAreas[i].getElementsByTagName("nombre")[0].firstChild.nodeValue;
lista.options[i+1] = new Option(nombre, codigo);
}
}
}
}

function nuevoAjax()
{
var xmlhttp=false;
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(E){
xmlhttp = false;
}
}

if(!xmlhttp && typeof XMLHttpRequest!='undefined'){
xmlhttp = new new XMLHttpRequest();
}

return xmlhttp;

}



/////////////

asi pues el xml devuelto es este miren:

<areas>
<area>
<codigo>1</codigo>
<nombre>INFORMATICA</nombre>
</area>
<area>
<codigo>2</codigo>
<nombre>ADMINISTRACION</nombre>
</area>
<area>
<codigo>3</codigo>
<nombre>SALUD Y MEDICINA</nombre>
</area>
<area>
<codigo>4</codigo>
<nombre>HISTORIA</nombre>
</area>
</areas>


la pregunta ES PORQUE ME FUNCIONA PERFECTO EN INTERNET EXPLORER Y NADA
QUE VER EN FIREFOX?


de pronto es la manera como instancio el objeto XMLHTLMLRequest


Bueno de todas maneras creo que acabo de hacer un buen aporte a la comunidad porque el codigo de arriba it's OK
creo?

salu2 desde ECUADOR AMAZONICO
by rickymax