CodeIgniter '2.0.3' jQuery 1.7 historia plugin de jQueryJquery.get() no funciona en IE8/9. no se puede cargar páginas en caché 304 no modificado
Hola chicos,
Tengo una aplicación CodeIgniter que he construido en una ajax Moda. Tengo una función de la siguiente manera:
$(document).on('click','.ajax_link',function(e){
//Stop the normal href action
e.preventDefault();
//Grab the destination URL
var new_url = $(this).attr('href')
//Grab the content via ajax and pass it to the history change function
$.get(base_url+new_url,function(data){
History.pushState({
content:data.content,
url:data.url
}, data.title, data.url);
//Refresh some site variables
refresh();
},'json');
});
Todo lo que hace que captura los clics en los elementos de anclaje con una clase de ajax_link y envía la respuesta a una función que se encarga de la colocación de que los datos de respuesta en la página.
Esto funciona en Chrome y FF. Hago clic en el enlace, jQuery hace la solicitud de obtención, obtengo un objeto JSON y mi función history.pushState() inyecta algunos de los datos json en mi página.
El problema que tengo está en IE8. Esencialmente, lo que sucede es que cuando abro la aplicación por primera vez, los enlaces funcionan pero solo funcionan una vez. La segunda vez que hago clic en un enlace que:
- ¿El Ajax
GET
- recibe una respuesta de 304 (no modificado)
- no llama a la función de devolución de llamada
jQuery.get()
y por lo tanto se para en seco.
Si limpio el caché, funciona de nuevo. Así que mi suposición es que IE está haciendo la solicitud de obtención, pero luego ve que ya se ha solicitado ese mismo archivo en el pasado ... y así detiene el proceso por completo.
¿Alguien sabe de una solución a esto? He echado un vistazo a las menciones de 304 errores y errores con ajax y el almacenamiento en caché en IE, pero aún no he encontrado un problema idéntico al mío.
Cualquier ayuda muy apreciada
(Probado en una Máquina Virtual Windows Internet Explorer 8, y el IE 8 Modo en Internet Explorer 9)
Resuelto
sólo tenía que añadir el siguiente código a mi documento .actualizada y el problema desapareció.
$.ajaxSetup ({cache: false});
Gracias por su respuesta, lo siento, me tomó tanto tiempo para aceptarlo. Esta fue de hecho la solución que necesitaba. –
vea también: http://stackoverflow.com/questions/1013637/unexpected-caching-of-ajax-results-in-ie8 – Costa