我正在尝试在Flash视频播放器中加载广告,然后下载VAST文件中链接的所有1x1 Impression gif。一切顺利,直到我点击此文件:
此文件返回状态代码302(暂时移动),其中Location标头指向http://httpstat.us/503 - 这是一种非常奇怪的返回503错误的方法
当发生这种情况时,我在Flash中收到错误#2030:“遇到文件结束。”
查看http://httpstat.us/503,Content-Length为23并且与返回文本的长度完全匹配(“503 Service Unavailable”),因此我不认为这是服务器响应的问题。
在我的Flash文件中,我将侦听器绑定到SecurityError和IOError事件:
loader.addEventListener(Event.OPEN, onOpen);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, onStatus);
loader.addEventListener(ProgressEvent.PROGRESS, onProgress);
loader.addEventListener(Event.COMPLETE, onComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, onError);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
loader.load(request);
所以我的问题是:我做错了什么?我该如何检测和处理Flash中的状态代码503?
答案 0 :(得分:1)
在尝试了这个之后我发现它是Flash Player中的一个错误 - 当你收到302时,Flash Player会秘密地旋转一个新的URLLoader来处理第二个请求,但会映射所有的事件和函数调用。因为它是一个单独的对象,所以抛出的任何错误都不会被捕获。
我的解决方案是为503错误添加一个全局的静态计数器,然后有一个未被捕获的错误处理程序。