2009/02/15

HTTPStatusEventのstatusについて一言

詳説ActionScript 3.0を読んでいて、以前FlexでHTTPStatusEventのstatusを使いエラー有無を判別しようとして、とても残念な気持ちになったことを思い出した。

事実上、FlexではHTTPStatusEventは使い物にならないのだ。
その理由はリファレンスガイドを読むとわかるのだけど、ほとんどのブラウザではstatusは常に0になってしまうから。

HTTPStatusEvent - status
Flash Player または AIR がサーバーからステータスコードを取得できなかった場合、またはサーバーと通信できなかった場合、記述したコードにデフォルト値の 0 が渡されます。値 0 は、どのプレーヤーでも生成される可能性があります (例えば、正しくない形式の URL が要求された場合など)。また、特定のブラウザで実行される Flash Player プラグインでは、HTTP ステータスコードをプレーヤーに渡すことができないので、常に値 0 が生成されます。該当するブラウザには、Netscape、Mozilla、Safari、Opera および Internet Explorer for the Macintosh があります。

この記述の最後のところを見ると…。
該当するブラウザには、Netscape、Mozilla、Safari、Opera および Internet Explorer for the Macintosh があります。

つまり、Windows上のInternet Explorer以外はダメなんじゃ?
要件でそこまでブラウザを限定できるのならかまわないけど、それは厳しいだろうと思う。

HTTPStatusEventはAIR用だと考えておくことにする。


同じ残念な思いをした方が他にもいた。
http://d.hatena.ne.jp/funnystone/20071018/1192696222

0 件のコメント: