5

URLLoader を使用してサーバーに POST しています。サーバーからの xml 応答は、404 または 403 (禁止) エラーで応答できます。ただし、応答コードを取得できません。

ここにコードがあります

  var urlString:String = "some url";
  var urlRequest:URLRequest = new URLRequest(urlString);
  var loader:URLLoader = new URLLoader();
  loader.addEventListener( Event.COMPLETE, setXMLData );
  loader.addEventListener( IOErrorEvent.IO_ERROR, ioHandler );
  loader.addEventListener( HTTPStatusEvent.HTTP_STATUS, httpStatusHandler );

//...

public function httpStatusHandler(evt:HTTPStatusEvent):void {
    trace("status is " + evt.status);
}

200、400、404、301、500などを返すかどうかに関係なく、ステータスは常に0です...

何か案は?

4

3 に答える 3

3

AIR の場合のみ、httpResponseStatus を使用できます。そうしないと、AIR を使用しない Flash/Flex ではできません。

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/URLLoader.html#event:httpResponseStatus

httpResponseStatus イベント
イベント オブジェクト タイプ: flash.events.HTTPStatusEvent HTTPStatusEvent.type プロパティ = flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS

言語バージョン: ActionScript 3.0 ランタイム バージョン: AIR 1.0 AIR 1.0

load() メソッドの呼び出しが HTTP 経由でデータにアクセスしようとし、Adobe AIR がリクエストのステータス コードを検出して返すことができる場合に送出されます。httpStatus イベントとは異なり、httpResponseStatus イベントは応答データの前に配信されます。また、httpResponseStatus イベントには、responseHeaders および responseURL プロパティの値が含まれます (これらは、httpStatus イベントでは定義されていません。httpResponseStatus イベント (存在する場合) は、完了イベントまたはエラー イベントの前に (およびそれに加えて) 送信されることに注意してください。

于 2010-02-17T01:16:19.653 に答える
0

いくつかのブラウザーではヘッダーを表示する機能が制限されているため、Flash には情報が渡されるという問題があります。これは主にブラウザの設定のせいですが、実際に機能する場所をまだ見つけていません。ステータスイベント出力

私はあきらめて、私のプロジェクトでファイルに応答コードを出力させましたが、素晴らしいものではありませんでした (そして、ポイントをやや打ち負かしました) が、うまくいくようです。

于 2010-02-17T08:00:31.013 に答える