go to bug id or search bugs for
When using php web services with Adobe Flex/Flash/AIR , error handling is a major pain.
If I have a simple web service that throws a SOAPFault , the http status code that is returned with the message is 500 . This is a problem because the Flash Player ignores any message that has a status code > 200. ( Which is understandable , status code 500 could mean the server is really in trouble ) .
I would very much like to be able to set the 'status code' that is returned when a SOAP Fault is thrown .
The flash player is clever enough to recognize a SOAP Error and therefore able to run the correct code from with the flash app , however this is only possible when it gets a HTTP Status code that is not > 200.
This is a feature request to be able to set the HTTP Error code that is returned from a SOAP Fault .
Its not necessarily a bug with a PHP , other languages offer similar workarounds.
Add a Patch
Add a Pull Request
I am able to disable HTTP 500 status code for some user agents, but I don't know the exactly user agent strings.
Flash - "Shockwave Flash"
Flex - ?
AIR - ?
The user agent is the same for Flex and AIR ie. "Shockwave Flash"
However it is possible to change the userAgent from with in side
the Flash/Flex/Air app .
Is it possible to set the status via the SOAP call itself ?
It makes no sense to setup status code manually (for all clients), because HTTP 500 is legal response.
I've committed the fix based on User-Agent header.
Problem do still exist. While PHP sends 200 HTTP code for SOAP Fault with User-agent = Shockwave Flash, Flash objects integrated into HTML page sends it's requests with User-agent = browser and NOT Shockwave Flash.
Thus Flash object still receive 500 Error.