« Parsing of undecoded UTF-8 will give garbage when decoding entities at ... | メイン | サーバの電気代 Dual Xeonは一台2A食います。 »

SafariでXMLHttpRequestの時にキャッシュから読んでしまう件

Safari(1.3)でXMLHttpRequestによって何かしらにリクエストを送ったときに、サーバへリクエストせずにCacheから読んできてしまう事がある。かなり困りもの。

http://www.bitterpill.org/logid/1117777362000
で解決方法らしきものを見つけた。

xmlReq.setRequestHeader('If-Modified-Since', 'Wed, 15 Nov 1995 00:00:00 GMT');

をいれると良いらしい。

prototype.jsで使う場合は、

new Ajax.Request("/example",{
    method:'get',
    requestHeaders: ['If-Modified-Since','Wed, 15 Nov 1995 00:00:00 GMT']
});

こうやってみれば多分OK。

Femoにはすでに導入済み。

ちなみにサーバからのレスポンスに「expires:現在時間」をいれていても上のトラブルは起きます。Pragma:no_cacheまでは試していませんです。

トラックバック

この一覧は、次のエントリーを参照しています: SafariでXMLHttpRequestの時にキャッシュから読んでしまう件:

» ブラウザーのキャッシュ問題 from Sounds Like a Explosion
ブログのインデックスにWeekly Top10をちょこちょこっと改造してみたのだ... [詳しくはこちら]

» Ajax 更新されない問題 from エンタープライズIT日記
いまさらながらAjaxの勉強をしてます。 いろいろJavaScriptライブラリが出ているので使っていますが、prototype.jsを選びました。 ... [詳しくはこちら]