XMLHttpRequest で XML のデータを受け取る

メモ:  Category:javascript

XMLHttpRequest では、サーバーからの結果を2種類の方法で受け取ることが出来ます。 1つは responseText 、もうひとつが responseXML になります。

この responseXML と XMLHttpRequest が Ajax ( Asynchronous JavaScript + XML )の由来です。

responseXML を使うことの利点は、受け取った結果を DOM として扱えることです。

DOM で扱えるためデータへのアクセスが非常にわかりやすくなります。

XML ということなので文字コードは UTF-8 が無難なようですが、文字化けの話題なども 見かけます。

function getAddr(){
  var xmlhttp = createXmlHttp();

  if(xmlhttp == null) return;

  xmlhttp.onreadystatechange = handleHttpResponse;

  function handleHttpResponse(){
  //リクエスト状況を確認(完了)
    if(xmlhttp.readyState == 4){
      var domDoc = xmlhttp.responseXML;
     var co = domDoc.getElementsByTagName('country');
    }
  }

  var zipValue = document.getElementById("zip").value;

  //サーバーへリクエスト
  xmlhttp.open("GET", "getaddr.php?param=" + zipValue, true);
  xmlhttp.send();
}

function createXmlHttp(){
  if(window.ActiveXObject){
    //Windows IE用
    try {
      return new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        return new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        return null;
      }
    }
  }
  else if(window.XMLHttpRequest){
    //Windows IE以外のXMLHttpRequestオブジェクト実装ブラウザ用
    return new XMLHttpRequest();
  }
  else {
    return null;
  }
}

bluenote by BBB