Wednesday, February 29, 2012

IEがAjaxのGETリクエストをキャッシュしてしまう問題

今更ながらIE がAjax(jQuery)のGETリクエストをキャッシュしてハマるという事案が発生したのでメモ。

どうやら2006〜2007年ごろには話題になっているissueで、自分はAjax使って開発とかあんまりやらないので知りませんでした。
IEだけに起こる問題のようで、HTTPのレスポンスヘッダにCache-Control: no-cache とか meta でコントロールする以外に
$.ajaxSetup({ cache: false });

 $.ajaxSetup({ ifModified: true });
などと書いておけばいいとのことでした。


ここで注意したいのは、POSTリクエストにするとかGETリクエストのパラメータにタイムスタンプなどをつけてユニーク(っぽい)リクエストにすればキャッシュされても大丈夫みたいな対処方法をしないことです。こういった本質的でない解決策は愚の骨頂なのでやめましょう。


No comments: