Este articulo que les presento a continuación lo encontré en el sitio web:  http://www.itworld.com/development/303295/ajax-requests-not-executing-or-updating-internet-explorer-solution, es bastante bueno si han tenido este problema usando algun tipo de MVC basado en javascript al consumir un servicio web; esta es la traducción con Google translate, peor pueden encontrar el original en link de arriba:

By 

Con las bondades de AJAX – no se espera que , cuando de repente te das cuenta de que algunas de las llamadas AJAX no están regresando datos actuales de Internet Explorer. Si eres como yo , esto por lo general cae en la cuenta que al final de un proyecto, mientras que se está probando , encunetras error en IE y no se uso en base diaria de desarrollo?

Esto puede ser un problema frustrante para depurar. Es posible sin embargo que es un problema muy común . De hecho, surgió en mi oficina tres veces en las últimas 2 semanas!

Los síntomas
La primera vez que se intenta hacer el llamado funciona; a medida que se modifican, se da cuenta de que todavía estás viendo resultados antiguos pero todo parece funcionar correctamente en otros navegadores

Usted está lentamente se esta volviendo loco

depuración
Cuando un asunto de esta naturaleza aparece por lo general comienzan la investigación mediante el uso de Firebug en Firefox. Con esta herramienta invaluable reviso para asegurarse que las peticiones se realizan correctamente, comprobar que no existen problemas de respuesta , etc .

Con Internet Explorer, las herramientas de desarrollo son tan pobres que apenas se puede depurar problemas de CSS , por no hablar de los problemas de javascript . Es entonces cuando me dirijo a Fiddler , el fantástico inspector de tráfico http . Cuando el fuego hasta Fiddler y empezar a poner algunas de las solicitudes mediante el uso de un navegador IE no verá la solicitud se envían y la respuesta vuelve sin ningún problema. Al hacer lo mismo con Internet Explorer te darás cuenta de que algo extraño sucede, o más bien , no sucede. Las solicitudes que no se están haciendo nada , están siendo totalmente ignorados por Internet Explorer.

La cuestión
Lo que pasa es que es muy probable que hacer una petición GET a un servicio web de su llamada AJAX. Internet Explorer, en su sabiduría, hace un caché automático de las respuestas de las solicitudes GET , mientras que otros navegadores le permitirá decidir si desea almacenar en caché el resultado o no. Una vez que IE ha realizado con éxito una petición GET, hace caché  hasta que expire en ese objeto .

La Solución
Afortunadamente, la fijación de la cuestión es más fácil que lo identifique . Hay varias maneras de evitar peticiones AJAX para el cache .

PUBLICAR
Una opción es utilizar simplemente las peticiones POST en lugar de GET de la aplicación. Por lo general es un pequeño cambio para cambiar de GET a POST en el cliente y en el servidor .

Buster caché
Otra opción es utilizar un parámetro ” Buster Caché” en su solicitud . Una caché -buster es un parámetro dinámico que anexar a la solicitud que hace cada solicitud única , por lo general un número al azar o las garrapatas de fecha / hora actuales. Esto no impide que el navegador almacene en caché la respuesta sin embargo, sólo le impide volver a utilizar el valor almacenado en caché . Por ejemplo :

var myRequestURL = ‘/ get / algunaFuncion destructor = ‘ + new Date ( ) getTime (). ;

encabezados de respuesta
También puede evitar que el almacenamiento en caché mediante el envío de encabezados adicionales junto con su respuesta. Al especificar el encabezado ” Cache- Control” con un valor de ” no-cache , no-store ” y devolverla con la respuesta del servicio web puede indicarle al navegador que no almacenar en caché el resultado. Por ejemplo, en C #:

HttpContext.Current.Response.AddHeader ( ” Cache- Control” , ” no-cache , no-store “);

jQuery
Por último , si usted está usando jQuery, se puede especificar que no desea almacenar en caché la respuesta de sus peticiones AJAX ya sea a través del tablero con el $ . Método ajaxSetup () o en una base por solicitud .

/ Cache / Disbable para todas las peticiones AJAX jQuery
. $ ajaxSetup ( {cache : true } ) ;

– OR-

/ / Desactivar la caché para sólo esta solicitud
$ . ajax ({
cache : false,
/ / otras opciones …
} ) ;

Comentarios finales

Hay razones por las que es posible que desee almacenar en caché la respuesta para las solicitudes GET . Por ejemplo , una aplicación de alto tráfico que recibe su nombre del perfil en cada carga de la página . Esa información no cambia muy a menudo lo que no hay necesidad de hacer una nueva solicitud cada vez. También hay algunos que van a decir que no se debe utilizar una solicitud POST para cada llamada AJAX como he sugerido . Como siempre, sus necesidades de aplicación específicas determinarán la forma de proceder y una solución no sirve para todos .

Anuncios