if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
// 新版的 IE
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
// 舊版的 IE
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
http_request.open('GET', 'taichung.xml', true);
http_request.send(null);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http_request.send('name=value&anothername=othervalue&so=on');
http_request.onreadystatechange = function(){
// do the thing
};
if (http_request.readyState == 4) {
// everything is good, the response is received
} else {
// still not ready
}
if (http_request.status == 200) {
// 可以依照我們的需求來處理 xml 的資料了
} else {
// 404 代表檔案不存在,500 代表處理錯誤(Internal Server Error)
// 自行決定要如何處理錯誤的情形
}
<script type="text/javascript" language="javascript">
// 修改自 AJAX: Getting Started - MDC
function makeRequest(url) {
var http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
// 定義事件處理函數為 alterContents()
http_request.onreadystatechange = function() {
alertContents(http_request); };
http_request.open('GET', url, true);
http_request.send(null);
}
function alertContents(http_request) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
var xmldoc = http_request.responseXML;
var nodes = xmldoc.getElementsByTagName('area');
var mesg = "";
for(var i=0; i<nodes.length; i++) {
mesg += nodes[i].firstChild.nodeValue + "\n";
}
alert(mesg);
} else {
alert('There was a problem with the request.');
}
}
}
</script>
<span
style="cursor: pointer; text-decoration: underline"
onclick="makeRequest('taichung.xml')">
取得台中的行政區域
</span>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Big5">
<script type="text/javascript" language="javascript">
function makeRequest(url) {
var http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
// 定義事件處理函數為 alterContents()
http_request.onreadystatechange = function() {
alertContents(http_request); };
// IE 6.x 和 Firefox 1.5.x 皆要 encodeURI()
url = url + "?name=" +
encodeURIComponent(document.myform.elements[0].value);
http_request.open('GET', url, true);
http_request.send(null);
}
function alertContents(http_request) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
var mesg = http_request.responseText;
alert(mesg);
} else {
alert('There was a problem with the request.');
}
}
}
</script>
</head>
<body>
<form name="myform">
姓名: <input type="text" name="name"></input>
<input type="button" value="OK" onClick="makeRequest('適當的 servlet URL');"></input>
</form>
</body>
</html>
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class Hello extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
res.setContentType("text/plain;charset=Big5");
PrintWriter output = res.getWriter();
String msg = req.getParameter("name");
msg = new String(msg.getBytes("ISO-8859-1"), "UTF-8");
StringBuffer buf = new StringBuffer();
buf.append("Hello " + msg);
buf.append(" , 歡迎使用 AJAX");
output.println(buf.toString());
output.close();
}
}