我正在尝试在 Flash 视频播放器中加载广告,然后下载 VAST 文件中链接的所有 1x1 印象 gif。一切正常,直到我点击这个文件:
link to bad file
此文件返回状态码 302(临时移动),带有指向 http://httpstat.us/503 的 Location header -- 一种非常奇怪的返回 503 错误的方式
发生这种情况时,我在 Flash 中收到错误 #2030:“遇到文件结尾”。
看http://httpstat.us/503 ,Content-Length 为 23 并且与返回文本的长度完全匹配(“503 Service Unavailable”),所以我不认为这是服务器响应的问题。
在我的 Flash 文件中,我将监听器绑定(bind)到 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?
最佳答案
在对此进行试验后,我发现这是 Flash Player 中的一个错误——当您收到 302 时,Flash Player 会 secret 启动一个新的 URLLoader 来处理第二个请求,但会映射所有事件和函数调用。因为它是一个单独的对象,所以抛出的任何错误都不会被捕获。
我的解决方案是为 503 错误添加一个全局静态计数器,然后有一个 Uncaught Error 处理程序。
关于actionscript-3 - HTTP 状态代码 503 在 Flash 中引发错误 #2030,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25648630/