Rud*_*udy 4 urlloader actionscript-3 ioerror
我有一个带有以下代码的URL加载器:
public function getUploadURL():void {
var request:URLRequest = new URLRequest();
var url:String = getPath();
// Adds time to prevent caching
url += "&time=" + new Date().getTime();
request.url = url;
request.method = URLRequestMethod.GET;
_loader = new URLLoader();
_loader.dataFormat = URLLoaderDataFormat.TEXT;
_loader.addEventListener(Event.COMPLETE, getBaseURL);
_loader.addEventListener(IOErrorEvent.IO_ERROR, onGetUploadURLError);
_loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, getHttpStatus);
_loader.load(request);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是这个请求可能是错误的,所以服务器会给我一个400 Bad Request,并提供一条消息来解释错误.如果是Event.COMPLETE,我可以在Event的"data"字段中看到服务器返回的一些消息(响应),但是如果调用了onGetUploadURLError或getHttpStatus,它只是说错误代码是400但是没有显示我与之相关的信息.
"data"字段在getHttpStatus中未定义,在onGetUploadURLError中为"".相反,在getBaseURL中,我得到:{"ResponseMetadata":{...}}我检查过,我在浏览器中得到了类似的错误请求,但我看不到它.
知道我怎么可以得到消息?
非常感谢,鲁迪
Flash无法很好地处理HTTP状态代码.这是一篇博客文章,其中包含Adobe员工的评论,称该问题实际上是插件限制.Adobe员工指向一个库,用于通过套接字使用AS3执行HTTP请求,但我怀疑这将是非常高效的(与将插件插入请求关闭到浏览器相比).
我曾经做过的所有项目的标准做法是始终发送200 OK并error在消息上添加一个密钥.
编辑:也看到这个错误,这正是你的问题.