Я использую URLLoader для POST к серверу. xml ответ с сервера может ответить 404 или 403 (запрещенными) ошибками. Однако я не могу получить коды ответа.
Вот код
var urlString:String = "some url";
var urlRequest:URLRequest = new URLRequest(urlString);
var loader:URLLoader = new URLLoader();
loader.addEventListener( Event.COMPLETE, setXMLData );
loader.addEventListener( IOErrorEvent.IO_ERROR, ioHandler );
loader.addEventListener( HTTPStatusEvent.HTTP_STATUS, httpStatusHandler );
//...
public function httpStatusHandler(evt:HTTPStatusEvent):void {
trace("status is " + evt.status);
}
состояние всегда является 0 невнимательными, возвращаюсь ли я 200, 400, 404, 301, 500, и т.д...
Какие-либо идеи?
Только для AIR можно использовать параметр, который используется в качестве параметра, определяющего состояние в ResponseStatus. В противном случае во Flash/Flex без AIR нельзя.
httpResponseStatus Тип объекта события: flash.events.HTTPStatusEvent Свойство HTTPStatusEvent.type = flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS
Language Версия: ActionScript 3.0 Runtime Versions: AIR 1,0 AIR 1,0
Отправляется, если вызов метода load () пытается получить доступ к данным через HTTP, и Adobe AIR может обнаружить и вернуть код состояния для запроса. В отличие от события startStatus, событие startResponseStatus доставляется перед любыми данными ответа. Кроме того, событие/ResponseStatus включает значения для свойств responseHeaders и responseURL (которые не определены для события/Status). Обратите внимание, что событие startResponseStatus (если оно есть) будет отправлено до (и в дополнение к) любого события complete или error.
возможность просмотра заголовков ограничена в некоторых браузерах, поэтому у flash есть проблема с передачей информации. в основном в этом винят настройки браузера, но я еще не нашел такого, где это действительно работает. вывод событий состояния.
я сдался и заставил файл выводить код ответа в моих проектах, не очень замечательно (и несколько перечеркивает смысл), но вроде работает.