2012-09-01 9 views
23

archivo de descarga I Wanna para su uso posterior, esta es la mejor manera que he encontrado, pero cuando veo el registro que se crea por beforeSend Evento, la URL ha sido modificado por un queryString como:¿Por qué se agregan algunos números a la URL del objeto ajax y cómo eliminarlos?

http://blabla.com/test.swf?_=1346484617818 

Los números son aleatorios también.

¡Me pregunto por qué sucede esto!

var url = 'http://blabla.com/test.swf'; 

$(document).ready(function() { 
      $.ajaxSetup({ 
      'beforeSend':function() { 
          console.log(this.url);} 
      }); 

     $.ajax({ 
      url:url, 
      dataType:"script", 
      }); 
}); 

Respuesta

31

Just use cache: true. jQuery agregará automáticamente una marca de tiempo al final de la URL, asegurándose de que las solicitudes ajax nunca se almacenen en caché.

de documentos jquery

defecto: verdadero, falso para 'script' tipoDatos y 'jsonp'
Si se establece en false, que obligará a las páginas solicitadas no se almacene en caché por el navegador . Establecer caché en false también agrega un parámetro de cadena de consulta, "_=[TIMESTAMP]", a la URL.

$.ajaxSetup({'cache':true}); 

Jquery Ajax Docs

+1

Estás en el camino correcto, pero en la dirección equivocada;) http://api.jquery.com/jquery.ajax/ – Andreas

+0

Puede usted explicar cómo? – rahul

+4

Para los tipos de datos _script_ y _jsonp_ jQuery usa 'cache: false' como valor predeterminado y por lo tanto agregará' _ = [TIMESTAMP] 'para evitar el almacenamiento en caché. Para evitar esto, deberá usar 'cache: true'. – Andreas

Cuestiones relacionadas