XMLHttpRequest > XMLHttpRequest Object 생성하기

XMLHttpRequest는 현재 W3C 표준이며, Draft 상태이다. (W3C XMLHttpRequest Object) 현존하는 대부분의 메이저 브라우저들은 이 XMLHttpRequest Object를 지원하며, 리눅스에서 채택하고 있는 대부분의 브라우저에서도 동작한다.

XMLHttpRequest Object 생성

/** XML HTTP Request 객체 생성
* @type Function
* @param n/a
* @return XMLHttpRequest Object
*//**/

xmlHttpRequest = function() {
 this.request = null;
}

xmlHttpRequest.prototype.createRequest = function()
{
 if (window.XMLHttpRequest){
  this.request = new XMLHttpRequest();
 } else if (window.ActiveXObject){
  try{
   this.request = new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch(err) {
   this.request = new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
 return this.request;
}
  • window.XMLHttpRequest를 지원하는 브라우저, 즉 모질라 계열이면 new XMLHttpRequest()를 실행
  • window.ActiveXObject를 지원하는 브라우저, 즉 IE 계열이면 new ActiveXObject()를 실행.
  • 그러나 Internet Explorer는 설치된 자바스크립트 버전에 따라 MSXML 버전에 차이가 있음으로 try ~ catch 문을 통해 대비해야 한다.
Members of the XMLHttpRequest Object
interface XMLHttpRequest{
  attribute EventListener  onreadystatechange;
  readonly attribute unsigned short  readyState;
  void  open(in DOMString method, in DOMString url);
  void  open(in DOMString method, in DOMString url, in boolean async);
  void  open(in DOMString method, in DOMString url, in boolean async, in DOMString user);
  void  open(in DOMString method, in DOMString url, in boolean async, in DOMString user, in DOMString password);
  void  setRequestHeader(in DOMString header, in DOMString value);
  void  send();
  void  send(in DOMString data);
  void  send(in Document data);
  void  abort();
  DOMString getAllResponseHeaders();
  DOMString getResponseHeader(in DOMString header);
  readonly attribute DOMString       responseText;
  readonly attribute Document        responseXML;
  readonly attribute unsigned short  status;
  readonly attribute DOMString       statusText;
};

댓글 없음: