开发者

IE Parsing XML JQuery and AJAX

$.ajax({ 
        url : SrvHandlerCalendar, 
        type : 'post', 
        data : {"persona": str, "day2" : dia + '.' + mes + '.' + anio}, 
        timeout : 2000, 
        tryCount : 0, 
        retryLimit : 3, 
        cache: false,
        dataType: ($.browser.msie) ? "text" : "xml",
        success: function(data) {
            var xml;
              if (typeof data == 'string') {
                xml = new ActiveXObject("Microsoft.XMLDOM");
                xml.async = false;
                xml.loadXML(data);
              } else {
                xml = data;
              }





                $(xml).find('evento').each(function(){
                ai++;
                var id = $(this).attr('id');
                var rdia = $(this).find('dia').text();
                var rmes = $(this).find('mes').text();
                var ranio = $(this).find('anio').text();
                var hora = $(this).find('hora').text();
                var horario = $(this).find('horario').text();
                var desc = $(this).find('d').text();
                var estado = $(this).find('estado').text();
                var localidad = $(this).find('localidad').text();
                var colonia = $(this).find('colonia').text();
                var calle = $(this).find('calle').text();
                var numero =  $(this).find('ncasa').text();
                var telefono = $(this).find('telefono').text();
                var celular =  $(this).find('celular').text();
                var persona =  $(this).find('persona').text();
                var creador =  $(this).find('creador').text();
                var observaciones =  $(this).find('observaciones').text();
                if(persona != $("#personas_select option:selected").text()) return 1;

                var html = "<font size=5>Informacion del evento con <u>" + persona + "</u></font><br>";
                html += "<font size=2>"+desc+"</font><br><br><br>";
                html += "<table class=\"datatable\"  cellpadding=10>"
                html += "<tr><td><strong>Hora de la Cita</strong></td><td>" + hora + horario+"</td></tr>";
                html += "<tr><td><strong>Domicilio</strong></td><td>" + calle + " #"+numero+"</td></tr>";
                html += "<tr><td><strong>Colonia</strong></td><td>" +colonia+"</td></tr>";
                //html += "<tr colspan=\"2\" style=\"text-align: center;\"><td>Datos de contacto</td></tr>";
                html += "<tr><td><strong>Telefono</strong></td><td>" + telefono +"</td></tr>";
                html += "<tr><td><strong>Celular</strong></td><td>" + celular +"</td></tr>";
                html += "<tr><td><strong>Encuestador</strong></td><td>" + creador +"</td></tr>" 
                html += "<tr><td><strong>Observaciones</strong></td><td>" + observaciones +"</td></tr></table>";

                 $('#datos').html(html); 

                /*

                var html = "<font size=5>Informacion del evento con <u>" + persona + "</u></font><br>";
                html += "<font size=2>"+desc+"</font><br>";
                html += "<table>"
                html += " <tr>  <td>Hora de la Cita</td><td>horario  y fecha</td></tr>";
                html += "<tr> <td>Domicilio</td><td>vdomicilio</td></tr>";
                html += "<tr><td>Colonia</td><td>vcolonia</td></tr>";
                html += "<tr><td>Datos de contacto</td><td>开发者_Python百科;(no hay otra columna)</td></tr>";
                html += "<tr><td>telefono</td><td></td></tr>";
                html += "<tr><td>celular</td><td></td></tr>";
                html += "<tr><td>encuestador</td><td></td></tr></table>";
                */




            });


            if($("#datos").html() == loading){
                $('#datos').html("Uups! No hay datos de evento para esta persona. <strong>Notificar de inmediato al administrador del sistema</strong> <a href=\"#\" onclick='alert(\"No se encontro el primer atributo XML\" + \" "+" \" )'> Ficha Técnica</a>"); 
            }


        }, 
    error : function(xhr, textStatus, errorThrown ) { 
        if (textStatus == 'timeout') { 
             $('#datos').html(loading);
            this.tryCount++; 
            if (this.tryCount <= this.retryLimit) { 
                //try again 
                $.ajax(this); 
                return; 
            } 
                $('#datos').html("Uups! Hubo un error procesando su solicitud <a href=\"#\" onclick='alert(\"Respuesta HTTP: \" + \" "+ xhr.status+" \" + \"\\nManejador del servidor: \" + \" " + SrvHandlerCalendar + " \"  + \"\\nDescripcion de error: \" + \" " + textStatus + " \"  + \"\\nIntentos: \" + \" " + this.retryLimit + " \" )'> Ficha Técnica</a>"); 
                return; 
        } 
        if (xhr.status == 500) { 
            $('#datos').html('Uups! Hubo un error con el servidor. Intente nuevamente mas tarde y pongase en contacto con el administrador de sistemas.'); 
        } else { 
            $('#datos').html("Uups! Hubo un error procesando su solicitud <a href=\"#\" onclick='alert(\"Respuesta HTTP: \" + \" "+ xhr.status+" \" + \"\\nManejador del servidor: \" + \" " + SrvHandlerCalendar + " \"  + \"\\nDescripcion de error: \" + \" " + textStatus + " \" )'> Ficha Técnica</a>"); 
        } 
    } 
    });` 

And basically this:

    var xml;
              if (typeof data == 'string') {
                xml = new ActiveXObject("Microsoft.XMLDOM");
                xml.async = false;
                xml.loadXML(data);
              } else {
                xml = data;
              }





                $(xml).find('evento').each(function(){
                ai++;
                var id = $(this).attr('id');
                var rdia = $(this).find('dia').text();
                var rmes = $(this).find('mes').text();
                var ranio = $(this).find('anio').text();
                var hora = $(this).find('hora').text();
                var horario = $(this).find('horario').text();
                var desc = $(this).find('d').text();
                var estado = $(this).find('estado').text();
                var localidad = $(this).find('localidad').text();
                var colonia = $(this).find('colonia').text();
                var calle = $(this).find('calle').text();
                var numero =  $(this).find('ncasa').text();
                var telefono = $(this).find('telefono').text();
                var celular =  $(this).find('celular').text();
                var persona =  $(this).find('persona').text();
                var creador =  $(this).find('creador').text();
                var observaciones =  $(this).find('observaciones').text();
                if(persona != $("#personas_select option:selected").text()) return 1;

                var html = "<font size=5>Informacion del evento con <u>" + persona + "</u></font><br>";
                html += "<font size=2>"+desc+"</font><br><br><br>";
                html += "<table class=\"datatable\"  cellpadding=10>"
                html += "<tr><td><strong>Hora de la Cita</strong></td><td>" + hora + horario+"</td></tr>";
                html += "<tr><td><strong>Domicilio</strong></td><td>" + calle + " #"+numero+"</td></tr>";
                html += "<tr><td><strong>Colonia</strong></td><td>" +colonia+"</td></tr>";
                //html += "<tr colspan=\"2\" style=\"text-align: center;\"><td>Datos de contacto</td></tr>";
                html += "<tr><td><strong>Telefono</strong></td><td>" + telefono +"</td></tr>";
                html += "<tr><td><strong>Celular</strong></td><td>" + celular +"</td></tr>";
                html += "<tr><td><strong>Encuestador</strong></td><td>" + creador +"</td></tr>" 
                html += "<tr><td><strong>Observaciones</strong></td><td>" + observaciones +"</td></tr></table>";

                 $('#datos').html(html); 

                /*

                var html = "<font size=5>Informacion del evento con <u>" + persona + "</u></font><br>";
                html += "<font size=2>"+desc+"</font><br>";
                html += "<table>"
                html += " <tr>  <td>Hora de la Cita</td><td>horario  y fecha</td></tr>";
                html += "<tr> <td>Domicilio</td><td>vdomicilio</td></tr>";
                html += "<tr><td>Colonia</td><td>vcolonia</td></tr>";
                html += "<tr><td>Datos de contacto</td><td>(no hay otra columna)</td></tr>";
                html += "<tr><td>telefono</td><td></td></tr>";
                html += "<tr><td>celular</td><td></td></tr>";
                html += "<tr><td>encuestador</td><td></td></tr></table>";
                */




            });


            if($("#datos").html() == loading){
                $('#datos').html("Uups! No hay datos de evento para esta persona. <strong>Notificar de inmediato al administrador del sistema</strong> <a href=\"#\" onclick='alert(\"No se encontro el primer atributo XML\" + \" "+" \" )'> Ficha Técnica</a>"); 
            }

Only works on Chrome/Firefox and Not on IE.

I don't know why, I googled about JQuery and IE errors, tried the 'fixes' and they still do not work.

Thank you in advance.

UPDATE

It now works. The problem with IE is that the XML It was receiving was bad because IE doesn't allow áéíóú letters (commonly used in spanish) instead displaying a square character therfor it could't process the XML.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜