More Flash and IE 6 Gotchas (2032 Error)
I'm sure some of you are familiar with the SSL/Cache-Control header issue and Microsoft Internet Explorer 6. When Flash attempts to load data (e.g. XML) from an HTTPS url and if the serving host specifies a 'no-cache' header (or equivalent), the data returned to Flash is invalid.
Well, we just recently ran into a slightly different issue with IE6 related to a specific combination of headers (unrelated to SSL in this case).
If you attempt to load XML data from a server who just so happens to be setting gzip compression AND setting Cache-Control to a specific value of 'no-cache', the data return will be invalid and an ioError will occur. A Microsoft tech note sheds some light on the problem.
Since Flash forbids you from setting the preferred encoding on the response (to avoid gzip), the only real solution is to make the change on the host. In our case we simply changed "Cache-Control: no-cache" to "Cache-Control: no-cache, no-store, must-revalidate, max-age=-1" and it solved the problem for us.
Note that if gzip compression is enabled without the cache header all is well, and vice versa. The combination of the two is what Internet Explorer chokes on.
In general, when you start to see spurious Stream Errors (2032) when attempting to load XML data, and it works in the general case - crack open FireBug and take a look at the response headers coming back from the host you are working with.


