había casi llegado a la conclusión de que las llamadas ajax de jQuery no funcionarían con datos JSON en IE 8, no importa lo que he intentado. Descubrí que podía usar la biblioteca jQuery 1.3.2 y esto solucionaba el problema, pero 1.4 simplemente no jugaba a la pelota con solicitudes JSON ajax. Incluso cuando los datos JSON devueltos eran tan simples que no había duda de que estaban en un formato no válido. Por ejemplo:Bug con la combinación de: jQuery 1.4, AJAX/JSON, Firebug Lite y el IE 8
{"x":"a"}
Ésta era independientemente de si he usado un servlet de Java para devolver los datos JSON, o un archivo de texto simple, en conserva. Independientemente de dataType o contentType. Independientemente de GET vs POST. Independientemente de si utilicé $ .ajax o $ .getJSON. Y todo funciona en Firefox 3.6.
Entonces me di cuenta de que sacar la referencia a Firebug Lite y funcionó! De repente, el problema desapareció. Funcionó independientemente de retocar el contentType en la respuesta (en el servlet que es), o del tipo de datos que especifico en la solicitud.
el problema reaparece si me enlace a Firebug Lite de nuevo ... incluso si mi código en realidad nunca lo usa.
Alguien ha visto este tipo de comportamiento, y ¿alguien tiene una corrección o solución? Odiaría tener que dejar de usar Firebug Lite. Gracias por cualquier idea. Una vez más, el problema sólo se produce cuando se combinan jQuery 1.4, Firebug Lite, datos JSON, y el IE 8.
Aquí es el Ajax llamada a un servlet, si importa:
$.ajax({
cache: false,
url:"http://localhost:8080/Performance_Reporting/TestServlet",
type:"GET",
contentType: "application/json",
dataType: "json",
timeout:30000,
success: function(d, status, req)
{
$("#result").text(d.x);
},
error: function(req, status, err)
{
$("#result").text(req.responseText);
}
})
Apologies desde el novato de la falta de saltos de línea en el código de ejemplo. Claramente necesito leer algunas preguntas frecuentes. – dnuttle
¿De dónde se aloja el archivo? Cuando ejecuta Firebug Lite, es probable que vea problemas entre dominios y que la respuesta esté vacía. –
Gaaaah He estado luchando contra los problemas de IE7/jQuery/JSON todo el día y resultó ser Firebug Lite el que causaba el problema. +1 por llamar mi atención. Ahora me voy a golpear algo muy, muy duro ... –