2006. 10. 11. 22:07
XMLHttpRequest 오브젝트 사용시 Internet Exploler 에서는 문제없이 구동되지만 Firefox 에서
"Length Required" 에러가 발생하는 경우가 있다.
인터넷에 돌아다니는 예제는 대부분 아래와 같은 식으로 구성되어있다.
xmlRequest.open('POST', this.dtsrcUrl, false);
xmlRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlRequest.send(null);
이 소스의 문제는 POST 방식으로 데이터 호출을 하지만, 정작 데이터를 보낼 때 포스트 데이터는 널(null) 값을 보내기 때문에 생기는 오류이다. 이를 해결하기 위해서 코드를 아래와 같이 변경한다.
xmlRequest.open('POST', this.dtsrcUrl, false);
xmlRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlRequest.setRequestHeader('Content-length', '0');
xmlRequest.send('');
요청 전송 시 데이터 값을 null 대신 '' 빈 값을 보냄으로써 해결할 수 있다.
더불어 헤더에 Content 길이 값을 0으로 설정해주는 센스~