For some time I wanted to create better feedback (error or alert) when you use cross-domain data (XML, TXT, JPG, FLV, etc.).
The more experienced flash programmer know that this you need a crossdomain.xml.
But flash never gives you any feedback if you need the crossdomain.xml of is it’s there or not. So you need Fiddler , Charles or some other http debugger to debug.
In the helpfiles of Flash I found the documentation about onHTTPStatus and more information about HTTP specification and after a quick scan of the information there I decided this is what I needed.
I wrote a class that would give me feedback…….. and all I got back was a 0 (zero) in Firefox and 404 using IE. Thats a strange bug…. so I started to read the helpfiles a little beter and found this:
A value of 0 can be generated in any player, such as if a malformed URL is requested, and is always generated by the Flash Player plug-in when run in the following browsers, which do not pass HTTP status codes to the player: Netscape, Mozilla, Safari, Opera, or Internet Explorer for the Macintosh.
So that killed the experiment immediately: I can’t have code that only work in IE.
But if YOU need http feedback and you’re using only IE I have some code for you:
function temp(httpStatusType:Number):String {
var httpStatusTxt:String = "";
switch (httpStatusType) {
case 100 :
httpStatusTxt = "Continue";
break;
case 101 :
httpStatusTxt = "Switching Protocols";
break;
case 200 :
httpStatusTxt = "OK";
break;
case 201 :
httpStatusTxt = "Created";
break;
case 202 :
httpStatusTxt = "Accepted";
break;
case 203 :
httpStatusTxt = "Non-Authoritative Information";
break;
case 204 :
httpStatusTxt = "No Content";
break;
case 205 :
httpStatusTxt = "Reset Content";
break;
case 206 :
httpStatusTxt = "Partial Content";
break;
case 300 :
httpStatusTxt = "Multiple Choices";
break;
case 301 :
httpStatusTxt = "Moved Permanently";
break;
case 302 :
httpStatusTxt = "Found";
break;
case 303 :
httpStatusTxt = "See Other";
break;
case 304 :
httpStatusTxt = "Not Modified";
break;
case 305 :
httpStatusTxt = "Use Proxy";
break;
case 307 :
httpStatusTxt = "Temporary Redirect";
break;
case 400 :
httpStatusTxt = "Bad Request";
break;
case 401 :
httpStatusTxt = "Unauthorized";
break;
case 402 :
httpStatusTxt = "Payment Required";
break;
case 403 :
httpStatusTxt = "Forbidden";
break;
case 404 :
httpStatusTxt = "Not Found";
break;
case 405 :
httpStatusTxt = "Method Not Allowed";
break;
case 406 :
httpStatusTxt = "Not Acceptable";
break;
case 407 :
httpStatusTxt = "Proxy Authentication Required";
break;
case 408 :
httpStatusTxt = "Request Time-out";
break;
case 409 :
httpStatusTxt = "Conflict";
break;
case 410 :
httpStatusTxt = "Gone";
break;
case 411 :
httpStatusTxt = "Length Required";
break;
case 412 :
httpStatusTxt = "Precondition Failed";
break;
case 413 :
httpStatusTxt = "Request Entity Too Large";
break;
case 414 :
httpStatusTxt = "Request-URI Too Large";
break;
case 415 :
httpStatusTxt = "Unsupported Media Type";
break;
case 416 :
httpStatusTxt = "Requested range not satisfiable";
break;
case 417 :
httpStatusTxt = "Expectation Failed";
break;
case 500 :
httpStatusTxt = "Internal Server Error";
break;
case 501 :
httpStatusTxt = "Not Implemented";
break;
case 502 :
httpStatusTxt = "Bad Gateway";
break;
case 503 :
httpStatusTxt = "Service Unavailable";
break;
case 504 :
httpStatusTxt = "Gateway Time-out";
break;
case 505 :
httpStatusTxt = "HTTP Version not supported";
break;
default :
httpStatusTxt = "Flash error";
break;
}
return (httpStatusTxt);
}