AJAX
AJAX (Asynchronous JavaScript and XML)
Contents
Hello World
Einfaches AJAX Sample für Java Server Pages.
Parsen eines Response XML Dokuments
Ein Request liefert ein XML Dokument. Dieses wird dann in der statechanged
Methode geparst und in einen HTML Table
transformiert.
txt="<table>"; x=xmlhttp.responseXML.documentElement.getElementsByTagName("book"); for (i=0;i<x.length;i++) { txt=txt + "<tr>"; xx=x[i].getElementsByTagName("title"); { try { txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>"; } catch (er) { txt=txt + "<td> </td>"; } } xx=x[i].getElementsByTagName("author"); { try { txt=txt + "<td>" + xx[0].firstChild.nodeValue + "</td>"; } catch (er) { txt=txt + "<td> </td>"; } } txt=txt + "</tr>"; } txt=txt + "</table>"; document.getElementById('copy').innerHTML=txt;
Node Value holen
Aus dem XML Snippet <compname>CocaCola</compname>
den Node-Value (CocaCola) auslesen.
var xmlDoc=xmlHttp.responseXML.documentElement; document.getElementById("companyname").innerHTML = xmlDoc.getElementsByTagName("compname")[0].childNodes[0].nodeValue;
XML auf dem Server erzeugen (MIME)
Damit Firefox das XML Parsen kann, muss der Contenttype gesetzt werden. Mit Java sieht es wie folgt aus:
response.setContentType("xml/text");
Dann erst kann die Funktion xmlhttp.responseXML.documentElement aufgerufen werden. Reicht Text, dann muss der MIME Type nicht gesetzt werden: xmlhttp.responseText.