2009-07-27 22 views
5

Actualmente estoy haciendo la misma petición Ajax con jQuery cada 2 segundos. Por alguna razón, en IE8 solo funciona la primera vez. Cada solicitud siguiente parece ir automáticamente a la función onSuccess, con el mismo resultado que la primera solicitud.jQuery Ajax, cuando periodicaly llamado, no funciona en IE8

El mismo código funciona perfectamente en FF3 y Chrome.

¿Alguien está al tanto de ese error y cómo hackearlo? ¿O simplemente estoy haciendo algo mal?

+0

¿Puede publicar algún código, por favor? Es difícil para nosotros ver un problema sin eso. – Damien

Respuesta

12

IE tiene una función de almacenamiento en caché ... es posible que sólo se ha almacenado en caché su solicitud. Asegúrese de anexar algo así como un número aleatorio a la cadena de consulta, así:

var url = "/yoururl.html"; 
url = url + "&random=" + Math.random(); 
+1

Eso funcionó perfectamente. Gracias por tu rápida respuesta Jason. – Zwik

+0

si esto te ayudó, por favor acepta como respuesta! thx – Jason

+0

sry ^^, (soy nuevo aquí) – Zwik

6

para que lo sepas $.ajax tiene un atributo cache que, cuando se establece en false hace exactamente lo que Jason está haciendo, es decir, incluye una parámetro aleatorio que significa que ninguna solicitud se almacena en caché. Es un poco más elegante que hacerlo usted mismo

+1

¡Oh! muy bueno saber jeje. Gracias :) Brad – Zwik

0

simplemente me he encontrado con lo mismo y he fijado que al establecer la propiedad "caché" de la llamada a la función ajax a falso.

 $.ajax({ 
      url: "/ws/inventory/checkavailability/", 
      async: false, 
      dataType: 'json', 
      cache:false, 
      success: function (data) { 
       //so something interesting 
      }, error: function (error) { 
       //display error? 
      } 
     }); 
+0

esto podría ser una doble, no me di cuenta la respuesta de Brad :) de todos modos aquí es un código de ejemplo. – Nielsm

Cuestiones relacionadas