Solicitud de jQuery AJAX que falla en IE

La siguiente llamada AJAX falla en IE.

$.ajax({ url:"{{SITE_URL}}/content/twitter.json", dataType:"json", error:function(xhr, status, errorThrown) { alert(errorThrown+'\n'+status+'\n'+xhr.statusText); }, success:function(json) { ...Snip... } }); 

La función de error regresa

 Undefined parsererror OK 

No se realiza ninguna solicitud al servidor, así que no creo que sea un problema con el JSON.

Reparado, ver # 1351389

Reparado, cambié el tipo de contenido de la application/json; charset=utf8 application/json; charset=utf8 para simplemente application/json .
Odio IE 🙂

También para evitar supercaching IE intente esto:

 var d = new Date(); $.ajax({ url:"{{SITE_URL}}/content/twitter.json?_="+d.getTime(), ...Snip... 

De esta forma, cada solicitud es una nueva URL para que IE obtenga: D

Para el problema del almacenamiento en caché, ¿por qué no usa el cache: false parámetro cache: false ?

 $.ajax({ url: "yoururl", cache: false, .... 

¿Es esto una copia / pega? Lo único que me atrapa todo el tiempo es dejar el último ‘,’ en un constructor de objetos. es decir, la mayoría de los navegadores aceptan JS:

 o = { a:1, b:2, c:3, }; 

pero IE ahoga en esto porque la coma después del último artículo. cambiarlo a:

 o = { a:1, b:2, c:3 }; 

y funciona.

En las versiones más nuevas de Internet Explorer (IE7), es necesario escribir la siguiente línea antes de llamar a $ .ajax , de lo contrario, nunca llamaría a la función:

 $.ajaxSetup({ cache: false }); //this line before $.ajax!!! $.ajax({ //codes //codes //codes }); 

IE almacena en caché las solicitudes AJAX de manera realmente agresiva (más que Firefox, de todos modos). Debe configurar los encabezados de Cache-Control en la respuesta de manera adecuada si esto no es adecuado para su sitio.

Un problema importante con JSON e IE generado de forma estática son las “comas” principales, por ejemplo, esto arroja un error en IE:

 { "one":"hello", "two":"hi", } 

Tenga en cuenta la última coma.

¿De qué se trata la porción de {{SITE_URL}}? Intente mirar el código para ver el código fuente del navegador. Si el fragmento {{SITE _URL}} tiene una barra inclinada y eso generaría la url de la solicitud:

 http://modomain.com//content/twitter.json

¿Qué podría arrastrarse IE fuera?

IE: error JSON no definido resuelto en

http://funkatron.com/site/comments/safely-parsing-json-in-javascript/

usando dataType: “json” y evitando el análisis