Inhalt einer Fehlerantwort vom Server ausgeben

… oder handling faultevent content in flash.

Wenn man Daten aus Flash/Flex an ein PHP-Skript schickt und diese dort verarbeitet, schickt man in der Regel ein Ergebnis zurück in einem HTTP Response mit Status Code 200. Diese Antwort kann man ganz leicht ausgeben.

XML-Request anlegen:
// Request Objekt initialisieren
xmlRequest = new HTTPService();
xmlRequest.resultFormat = "e4x";
xmlRequest.method = "POST";
xmlRequest.addEventListener(ResultEvent.RESULT, requestResultHandler);
xmlRequest.addEventListener(FaultEvent.FAULT, requestFaultHandler);
xmlRequest.url = "http://www.example.com";
xmlRequest.send();

Antwort ausgeben:
public function requestResultHandler(event:ResultEvent):void
{
var returnXML:XML = event.result as XML;
}

Ein wenig schwieriger ist es mit anderen Status Codes, wie ich rausgefunden habe, werden diese vom Browser nicht an das Flash Plugin weitergeleitet, so dass es nur möglich ist, auf die Status Codes zu reagieren, nicht aber den Inhalt der Antwort auszugeben:
public function requestFaultHandler(event:FaultEvent):void
{
Alert.show("Es ist ein Fehler aufgetreten", "Fehler");
}

Quellen:
http://efreedom.com/Question/1-2299401/Actionscript-Expose-XML-Web-Service-FaultEvent-Can-Accessed
http://forums.adobe.com/thread/438755
http://blog.widget-labs.com/2007/02/15/handling-web-service-exception-in-flex-code/

Kommentare sind geschlossen.