본문 바로가기

Actionscript3.0

[AS3] Internet Explorer(IE) 에서 #2032 스트림 오류입니다.


 URLLoader를 사용하여 데이터를 로드 할때 서버에서 데이터가 안내려 오면 2032 스트림 오류가 발생 한다. 하지만 서버도 정상적으로 동작하고 데이터도 정상적으로 내려오고 있을때(해당 파일이 존재 할 때), IE 에서만 2032 오류가 발생할 경우가 있다.


var infoLd:URLLoader = new URLLoader();
var queryUrl:String = "";
infoLd.addEventListener(Event.COMPLETE,hnInfoLoaded);
infoLd.addEventListener(IOErrorEvent.IO_ERROR,hnLoadError);
infoLd.load(new URLRequest(queryUrl));
function hnInfoLoaded( e:Event ):void{}
function hnLoadError( e:IOErrorEvent ):void{}

위의 코드와 같은 상황에서 여러 가지 이유로 인해 2032 오류가 발생할수 있는데, IE 브라우저에서만 발생 한다면 IE 에서 지원하는 최대 URL 길이 제한을 넘었을 가능성이 크다. IE에서 지원하는 URL 길이가 타 브라우저에 비해 상대적으로 짧기 때문이다.

IE 에서는 최대 2083 길이 이하의 URL 만 request 를 보낼수 있으며, POST/GET 방식 모두 적용 된다.


예를 들어 URLLoader로 다음과 같은 URL 을 로드 할때 발생할 수 있다.


 http://dongkang.com/data/list.do?list=1234567/1234567/1234567/1234567/1234567/1234567/........(length:2083)


위의 API 와 같이 URL 로 인자를 확인할때는 데이터를 나눠서 로드를 하거나, URL 길이를 줄일수 있는 다른 방법으로 접근 해야 한다. 위의 내용은 IE의 대부분 버전에서 동일하게 발생하며, 자세한 내용은 아래 URL에서 확인 가능 하다.


http://support.microsoft.com/kb/q208427/