2012-09-01 4 views
23

アイワナダウンロードファイル、これは私が見つけた最良の方法ですが、私はbeforeSendイベントによって作成されたログを参照する場合、URLは次のようにのqueryStringによって変更されました:なぜいくつかの数字がajaxオブジェクトのURLに追加され、それらを削除する方法は?さらに使用するために

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

数字もランダムです。

なぜこのようなことが起こるのだろうか。

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

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

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

答えて

31

cache:trueを使用してください。 jQueryは自動的にURLの最後にタイムスタンプを追加し、ajaxリクエストがキャッシュされないようにします。 falseに設定した場合、真のdataType「スクリプト」のための偽と「JSONP」
、それがブラウザによってキャッシュされないように要求されたページを強制します:デフォルト

jqueryのドキュメントから

。 キャッシュをfalseに設定すると、クエリ文字列パラメータ "_=[TIMESTAMP]"がURLに追加されます。あなたは正しい方法ではなく、間違った方向にいる

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

Jquery Ajax Docs

+1

;)http://api.jquery.com/jquery.ajax/ – Andreas

+0

あなたはどのように説明してくださいできますか? – rahul

+4

データ型_script_および_jsonp_の場合jQueryはデフォルトで 'cache:false'を使用し、' _ = [TIMESTAMP] 'を追加してキャッシュを防止します。これを防ぐには、 'cache:true'を使わなければなりません。 – Andreas

関連する問題