2012-09-01 7 views
23

I Wanna pobierz plik do dalszego użytku, to jest najlepszy sposób znalazłem, ale gdy widzę, dziennik, który jest tworzony przez beforeSend Event URL została zmodyfikowana przez kwerendy jak:Dlaczego niektóre liczby są dodawane do adresu URL obiektu ajax i jak je usunąć?

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

Liczby też są przypadkowe.

Zastanawiam się, dlaczego tak się dzieje !!!!

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

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

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

Odpowiedz

31

Po prostu użyj cache: true. jQuery automatycznie doda znacznik czasu na końcu adresu URL, upewniając się, że żądania ajaxowe nie są nigdy buforowane.

z jquery docs

Domyślnie: true, false dla dataType 'skrypt' i 'jsonp'
Jeśli ustawione na false, to zmusi żądane strony, aby nie być buforowane przez przeglądarkę . Ustawienie pamięci podręcznej na false powoduje również dodanie parametru adresu zapytania, "_=[TIMESTAMP]" do adresu URL.

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

Jquery Ajax Docs

+1

Jesteś na dobrej drodze, ale w złym kierunku;) http://api.jquery.com/jquery.ajax/ – Andreas

+0

można proszę wyjaśnić, w jaki sposób? – rahul

+4

Dla typów danych _script_ i _jsonp_ jQuery używa domyślnie 'cache: false', co spowoduje dodanie' _ = [TIMESTAMP] ', aby zapobiec buforowaniu. Aby temu zapobiec, będziesz musiał użyć 'cache: true'. – Andreas