jQuery.ajax でリクエストをキャッシュさせない方法

  • 投稿 : 2014-08-05
Jquery.load("example.dat")のように、拡張子をdatにしてもキャッシュされるみたいなので、その時調べた回避方法。

load関数の場合

$.ajaxSetup({
    cache: false
});
$("#add_target").load("example.html");

ajaxSetupで設定すると、全てのload()に対して適用されると思う。

$.ajaxの場合

$.ajax( {
    url : "http://example.com/",
    cache : true, // URL末尾のタイムスタンプはいらないよ
    param : {
        a : "abcd"
    },
    beforeSend : function( xhr ){
        xhr.setRequestHeader("If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT");
    },
    ...
} );

cache : falseにする方法もあるらしいのだが、これでもうまくいかないケースがあるとかだった記憶で、上記の方法もあるとかだったような・・・。

以下、調べたときにメモとして残したおいたURL。
でも、思い出せない・・・。

【参考】
jQuery.ajax でリクエストをキャッシュさせない方法 - 葉っぱ日記
[Web] AJAX通信をキャッシュしない方法 - YoheiM .NET
jQuery getでキャッシュされなようにする | Bamboo lath 日々の記録
jQueryの関数 load()
$.ajax()がIEでうまく動かない - sheherher

スポンサーリンク