2009-06-23 13 views
1

Meine Flex3-Anwendung muss sinnvolle Fehlermeldungen auf Anwendungsebene vom Server anzeigen.Wie übertrage ich Fehlerinformationen über eine HTTP-Anforderung in Flex 3?

This article Artikel besagt, dass Flash schwerwiegende Einschränkungen beim Empfangen von Fehlerinformationen hat, ob als Statuscodes, Antworttext oder Antwort-Header wie beschrieben. Ich kann jeden von diesen von meinem Servlet verwenden. Aber anscheinend sind keine zugänglich!

Aber die mx.rpc.events.FaultEvent, die mein Code folgende HTTPService.send auf einem nicht-200 HTTP-Statuscode empfängt, erlaubt keinen Zugriff auf diese!

Eine Problemumgehung besteht darin, immer den Statuscode 200 "OK" zu übergeben und XML-Inhalt im Textkörper zu verwenden, z. mit einem <Error> Root-Tag. Aber das würde den Flex-Fehlermechanismus vollständig umgehen, und jeder meiner Event-Handler müsste selbst herausfinden, ob es einen Fehler gegeben hat.

Ich möchte nur einige Art von Antwort Informationen bei Fehler zur Verfügung stehen.

Übrigens verwende ich immer POST, da Flex mehr Informationen mit POST als mit GET weiterleitet.

Antwort

0

Nach weiterer Erkundung scheint es, dass es keinen nicht-hacky Weg gibt, dies zu tun.

HTTPService geht einfach nicht durch any Informationen über Fehler.

So müssen Sie eine Problemumgehungsebene schreiben, um Fehler wie oben beschrieben zu behandeln: Übergeben Sie immer den Statuscode 200 "OK" und verwenden Sie XML-Inhalt im Text, z. mit einem <Error> Root-Tag und dem Statuscode im XML. Erstellen Sie dann einen Layer, der im Falle eines Nicht-200-Status im XML-Code mit einem Fehler zurückruft.