Как получить доступ к возвращаемым данным AS3 URLLoader на IOErrorEvent - PullRequest
3 голосов
/ 09 октября 2008

Я пишу библиотеку ActionScript для API. Я использую объект URLLoader для загрузки данных из API. Проблема, с которой я столкнулся, заключается в том, что всякий раз, когда API возвращает статус http в 400-х годах, actionscript воспринимает это как ошибку io. Это все хорошо, но кажется, что нет никакого доступа к данным, которые были возвращены, если это так. Следовательно, любая полезная информация о причине возвращаемой ошибки теряется. Есть ли способ обойти это? Это делает библиотеку чем-то вроде боли, если не может быть никакой полезной информации для разработчиков, когда API возвращает ошибку. Спасибо за любую помощь!

1 Ответ

3 голосов
/ 28 октября 2008

Вы не можете получить доступ к данным в случае события 400. Однако вы можете получить код состояния, добавив прослушиватель для события состояния HTTP.

Если вы управляете внутренним кодом, есть несколько обходных путей:

Один из вариантов заключается в том, чтобы сервер отвечал на 200 с, даже в случаях ошибок при обращении к флэш-клиенту, но со специальным кодом ошибки, чтобы клиент знал, что ответ 200 на самом деле является ошибкой.

Другой вариант - установить на клиенте файл cookie, содержащий сообщение об ошибке. Flash не может напрямую обращаться к файлам cookie, но вы можете вызвать javascript, используя ExternalInterface, чтобы прочитать файл cookie, или, опционально, клиент может сделать еще один удар по специальному внутреннему контроллеру, который читает файл cookie и отвечает сообщением об ошибке. *

...