jQuery.ajax() で読んで来るデータをキャッシュさせない

次のコードは正しく動作しますが、サーバやブラウザの設定によってはデータを更新してもキャッシュが読まれてしまいます。

$.ajax({
  type: 'GET',
  dataType: 'json',
  url: 'hoge.json',
  success: function(data) {
    concole.log(data);
});

これを避けるには cache オプションを false に設定します。

$.ajax({
  type: 'GET',
  dataType: 'json',
  cache: false,
  url: 'hoge.json',
  success: function(data) {
    concole.log(data);
});

ちなみに jQuery.getJson() や jQuery.get() などのメソッドには cache オプションはバージョン 2.1.1 現在では存在しないようです。

そのようなケースでは、先に jQuery.ajaxSetup() で同様に設定することで対処できるようです。

$.ajaxSetup({
  cache: false
});

参考

公式ドキュメント
http://api.jquery.com/