トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     MX2004でHTTPステータスコードを取得するには?
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
joy-go
Åê¹ÆNo.28718
投稿日時: 2006-9-14 13:20
新米
居住地:
投稿: 2
使用環境:
WinXP,Flash MX 2004
MX2004でHTTPステータスコードを取得するには?
初めまして。joy-goと申します。

趣味でFLASHの勉強をしておりまして、
いつもこのサイトを見て参考にさせていただいています。

現在、表題の件で妙案はないものかと試行錯誤しています。
XMLクラスやLoadVarsクラスを用いた際に、サーバーからHTTPヘッダーに吐き出されているエラーコードを取得するにはどうしたらよいものかと。

FLASH8では、onHTTPStatus()ハンドラが実装されているようですが、MX2004にはありません。
なので現在は、サーバー側でエラーが発生した際には、


<xml>
 <status code='500' />
</xml>


といった感じでサーバー側からエラー用のXMLを吐き出すようにして、
FLASH側では、


var xml = new XML();
xml.onLoad = function( bool:Boolean )
{
 if( status )
 {
  var code:String = this.firstChild.firstChild.attributes.code;
  switch( code )
  {
   case '404':
    // 404エラー用の処理
   break;
   case '500':
    // 500エラー用の処理
   break;
   .
   .
   .
   default:
    // XMLデータ取得成功時の処理
   break;
  }
 }
 else
 {
 //XMLエラー
 }
}



としてエラー判定すると同時に
setInterval()メソッドを用いて、
一定時間経過しても、onLoad()メソッドが呼び出されない場合、
タイムアウトの判定を出すようにしています。

ですが、これはあまりスマートな方法とは思えません。
FLASH8のonHTTPStatus()ハンドラ的に
HTTPのステータスコードをFLASH側で取得するにはどのようにすればよいのでしょうか?
MX2004で行うことは不可能なのでしょうか?

どなたかお分かりの方がいらっしゃいましたら、ご教示願います。

使用環境はFLASH MX2004 & WinXPです。


Fla4man
Åê¹ÆNo.28723
投稿日時: 2006-9-14 20:38
職人
居住地: かまくら
投稿: 517
使用環境:
WinMe,Win2000,
Flash4,アズさん,大仏、delphi
Re: MX2004でHTTPステータスコードを取得するには?
onHTTPStatusは確実に動くわけではないそうです。(アドビのヘルプにfirefox1.5で動かないというコメントあり)
従って現在やられている方法のほうがよいと思います。

appache系ならばエラーコードの生成は.htaccessで設定するのが楽です。
エラーコードはもっと処理しやすい値にするとよいと思います。

一般ユーザーは単にエラーどうかだけチェックするので
xml.onLoad = function( bool:Boolean )
のboolだけでするケースが多いと思われます。
しかし大抵はエラーページのないものです。

404コードでちゃんとしたエラーページを返した場合
今回の書きこみ内容からすると
boolはfalseにならず通ってしまっているようです。
私はためしていないのですがそうなんでしょうか?

とするとやはり今回の手法に準じた方法がよいということになります。
その場合case文でフラットに処理するのではなくて
データ取得成功をまず切り分けて
その他のエラー郡の中で条件分岐をするほうが好ましいのでしないでしょうか?


----------------
通常のハンドル名:×○○× ねた回収モードに突入 現在1/100

joy-go
Åê¹ÆNo.28728
投稿日時: 2006-9-14 23:26
新米
居住地:
投稿: 2
使用環境:
WinXP,Flash MX 2004
Re: MX2004でHTTPステータスコードを取得するには?
早速のご回答ありがとうございます。

onHTTPStatusも完璧に機能するわけではないのですね。
でも、ブラウザによって機能しないということは、onHTTPStatusは、HTTPヘッダーのステータスコードを見ているわけではないということなんでしょうかね。
onHTTPStatusがどのような仕組みになっているのかが、今ひとつ分かりません。


引用:
一般ユーザーは単にエラーどうかだけチェックするので
xml.onLoad = function( bool:Boolean )
のboolだけでするケースが多いと思われます。


確かに、厳密にステータスコードを判定する必要性のあるケースはほとんどないと思うのですが、
FLASH8でできるなら、MX2004も同じAS2.0なので、何かしらの方法があるのでは?と思ったのですが、どのようにすればよいのか見当もつかなかったので。


引用:

404コードでちゃんとしたエラーページを返した場合
今回の書きこみ内容からすると
boolはfalseにならず通ってしまっているようです。
私はためしていないのですがそうなんでしょうか?


ごめんなさい、これ間違いです・・・
404の場合、boolはfalseになるので、
この条件分岐の404のところは通らないです。


結局、FLASH側だけの設定で厳密にステータスコードを判定する方法はないってことになるんでしょうか?




スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops