无法在ActionScript 3中获取HTTP响应代码/标题?
-
21-09-2019 - |
题
我正在使用Urlloader将其发布到服务器上。服务器中的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等...
有任何想法吗?
解决方案
对于空气,只有您可以使用httpresponsestatus。否则,在没有空气的情况下,您将无法。
httpresponsestatus事件
事件对象类型:flash.events.httpstatusevent httpstatusevent.type property = flash.events.httpstatusevent.http_response_status
语言版本:ActionScript 3.0运行时版本:AIR 1.0 AIR 1.0
派遣了对LOAD()方法的调用尝试通过HTTP访问数据,并且Adobe Air能够检测并返回请求的状态代码。与HTTPSTATUS事件不同,HTTPRESPONSESTATUS事件是在任何响应数据之前提供的。此外,HTTPRESPONSESTATUS事件包括响应台面和ResponseUrl属性的值(对于HTTPSTATUS事件不确定。请注意,HTTPRESPONSESTATUS事件(如果有)将在任何完整或错误事件之前发送(以及此外)。
其他提示
在几个浏览器中查看标头的能力受到限制,因此Flash通过信息存在问题。这主要归咎于浏览器设置,但我还没有找到它实际工作的地方。 状态事件输出.
我放弃了文件,并在项目中打印了响应代码,而不是很棒(并且有点打败了这一点),但似乎有效。
不隶属于 StackOverflow