2012-02-29 10 views
6

Tengo una llamada ajax a un controlador que se supone que me envíe una vista actualizada para que pueda actualizar mi página con los datos actualizados. Pero recibo el encabezado 304: Not Modified.

Intenté utilizar la opción no-caché para la llamada ajax, e intenté manualmente agregar también una marca de tiempo al final de la url de solicitud, ninguna de ellas funcionó en IE9.

Esto funciona perfectamente en Chrome sin configurar la opción de almacenamiento en caché.

No estoy muy seguro de cuál es el problema.

El siguiente es el código que utilicé, que pensé que funcionaba después de agregar manualmente la marca de tiempo. QA dijo que no funciona en su computadora.

 $.ajax({ 
     url: form[0].action + "?cc="+new Date().getTime(), 
     type: 'POST', 
     cache: false, 
     data: $(form).serialize() 
    }) 
    .success(createFilterCleanup); 

Respuesta

4

Pruebe a establecer lo siguiente en su JQuery $ .ajax, para evitar es decir, desde el almacenamiento en caché sus peticiones ajax. Esto siempre ha trabajado para mí.

$.ajaxSetup({ cache: false }); 

O

$.ajax({ type: 'POST', cache: false }); 

http://api.jquery.com/jQuery.ajax/

"Si se establece en falso, forzará que el navegador no almacene las páginas solicitadas. Establecer caché en falso también agrega un parámetro de cadena de consulta, "_ = [TIMESTAMP]", a la URL. "

A continuación se muestra un artículo con algunas otras soluciones posibles:. http://www.dashbay.com/2011/05/internet-explorer-caches-ajax/

Esperemos que esto ayuda

0

método POST Uso en lugar de GET o pasar parámetro ficticio al azar (como fecha y hora actual) es único método robusto para evitar el almacenamiento en caché en el IE. :(

EDITADO:. Había leído cuidadosamente y se encontró añadiendo marca de tiempo no ayuda - por favor, dar un pequeño ejemplo de código para mostrar cómo se lo añaden