파이어폭스에서 XMLHttpRequest 객체를 사용해서 Ajax 통신시 분명 제대로된 XML 파일임에도 불구하고
responseXML has no properties 오류가 발생할 때가 있습니다.
여러곳의 RSS를 테스트 해봤는데 위와 같은 오류가 발생하는 것들이 있습니다.
var req = new XMLHttpRequest();
...
req.responseText; // 분명 XML 데이터가 존재함.
req.responseXML; // responseXML has no properties 오류 발생
XML 데이터를 제대로 받아왔음에도 XML 파일이 아니라고 인식하여 파싱을 하지 않기에 오류가 발생합니다.
서버에서 헤더를 명확하게 명시하지 않을경우 발생할 수 있습니다.
이 문제를 해결하기 위한 overrideMimeType() 이라는 메소드가 존재합니다.
req.overrideMimeType('text/xml');
메소드의 인수로 명시한 content type으로 강제 처리할 수 있게 합니다.
이 메소드는 반드시 send() 보다 먼저 호출되어야 합니다.
참고주소: http://developer.mozilla.org/ko/docs/XMLHttpRequest#overrideMimeType.28.29
responseXML has no properties 오류가 발생할 때가 있습니다.
여러곳의 RSS를 테스트 해봤는데 위와 같은 오류가 발생하는 것들이 있습니다.
var req = new XMLHttpRequest();
...
req.responseText; // 분명 XML 데이터가 존재함.
req.responseXML; // responseXML has no properties 오류 발생
XML 데이터를 제대로 받아왔음에도 XML 파일이 아니라고 인식하여 파싱을 하지 않기에 오류가 발생합니다.
서버에서 헤더를 명확하게 명시하지 않을경우 발생할 수 있습니다.
이 문제를 해결하기 위한 overrideMimeType() 이라는 메소드가 존재합니다.
req.overrideMimeType('text/xml');
메소드의 인수로 명시한 content type으로 강제 처리할 수 있게 합니다.
이 메소드는 반드시 send() 보다 먼저 호출되어야 합니다.
참고주소: http://developer.mozilla.org/ko/docs/XMLHttpRequest#overrideMimeType.28.29




최근 덧글