IEでのAjaxリクエスト(GET)のキャッシュ
IEで同じURLへ同じパラメータのGETのAjaxリクエストを投げても、結果がキャッシュされてしまいます。回避策としてとりあえず以下の3つが考えられます。
- POSTリクエストに変更する
- パラメータにタイムスタンプなどリクエスト毎に変動するものを含める
// sample using prototype.js function get_timestamp() { var date = new Date(); return date.getTime(); } function ajax_request() { new Ajax.Updater( { success : 'rewrite_area' }, '/hoge/foo/var', { method : 'get', parameters : 'timestamp=' + get_timestamp() + '&something=updated' } ); }
- リクエストのHTTPヘッダに「If-Modified-Since」を設定する
new Ajax.Updater( { success : 'rewrite_area' }, '/hoge/foo/var', { method : 'get', parameters : 'something=updated', requestHeaders:['If-Modified-Since', 'Thu, 01 Jun 1970 00:00:00 GMT'] } );
普通にPOSTにするのがいいかなと思います。