IETesterのAjax通信のUserAgentは常にIE8です。


2010年 12月 15日

追記:既知のバグのようです

IE6のテスト中にはまったので紹介します。

社内で作成するWebアプリケーションではセッションハイジャック対策としてHTTPヘッダーのUserAgentやRemoteAddrがセッションの内容と異なっていた場合に破棄するというコードを組み込んでいます。
この仕組みを使っている場合にIETesterでAjax通信を行うとセッションの内容が取得できず呼び出したAPIから正常な結果が得られないという問題がありました。

何でだろう、、という事で調べてみました

UserAgentを表示させるスクリプトはこちら。sinatraとhamlをつかっています。

結果

一行目が通常のリクエストの時のUserAgentで二行目がAjax通信時のUserAgentです。

  • IE6(IETester)
  • IE7(IETester)
  • IE8(IETester)
  • IE6(XPmode)
  • IE8
  • (参考)Chrome8

IETesterの場合はすべてIE8になっています(汗。

という事で、IETesterではAjax、というかJavascriptの動作確認は気をつけて行いましょう。