Ajax.requestで304Not Modifiedになって困った

JUGEMテーマ:JavaScript

なんだか最近好調更新中。今日の話題はprototype.js。もはやデファクトスタンダードの地位を確立したと思われる、javascriptクロスブラウザライブラリです。
ajaxで非同期通信をサーバと行い、データを取得する場合、Ajaxオブジェクトを生成してrequestメソッドを発行するのですが、304 Not Modifiedが返ってきた場合、onCompleteに与えた関数オブジェクトがコールされませんのです。onFailure扱い。

これは困る。

で、結局以下のようにして解決しました。

requestHeaders: ["If-Modified-Since","Tue, 22 Nov 2005 14:00:00 GMT "]

requestメソッドの引数に、optionsパラメータがあるんですが、そこにhttpリクエストヘッダを書き込めるオプションがあるんです。で、304エラーが帰ってくる要因になっているIf-Modified-Sinceを古ーい日付にしておいたら、絶対200 OKが返ってくるって話ですな。超力技。