iOS6にてPOSTによるAjaxがキャッシュされる!?

iOS6のSafariでWebサイトが正しく動作しない問題がかなり深刻・・ - NAVER まとめ等で報告されている事象の一部にぶちあたった。

それは、、、

問題その1. AjaxのPOSTがキャッシュされる


とある見積サイトにて、ユーザーの入力内容と最終的な見積金額が合わない、との連絡が。。。

まずはログ等から調査を行ったところUAはiOS6のMobile Safariだった。

ユーザーの操作および入力内容を特定し、実機にて確認を行ってみると、たしかに、毎回ではないが現象を再現させることができた。

どのリクエストがキャッシュされたのか特定するために、

  • PC(Chrome)から同様の操作を行った場合のアクセスログ
  • iOSから同様の操作を行った場合のアクセスログ

を比較してみたところ、ドキュメントロード時に初期実行しているAjaxのPOSTリクエストがキャッシュされてるっぽい。。

これは、、、仕様なのか、、、バグなのか。。。

結局、先人方同様、

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

しつこいくらいにキャッシュを無効にしました。