<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> 發送XML請求 </title>
<meta name="author" content="Yeeku.H.Lee" />
<meta name="website" content="http://www.crazyit.org" />
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
</head>
<body>
<select name="first" id="first" onchange="change(this.value);">
<option>請選擇國家</option>
<option value="https://bbs.csdn.net/topics/1" selected="selected">中國</option>
<option value="https://bbs.csdn.net/topics/2">美國</option>
<option value="https://bbs.csdn.net/topics/3">日本</option>
</select>
<select id="second">
<option>請選擇城市</option>
</select>
<script type="text/javascript">
//保存XMLHttpRequest物件的變數
var xmlrequest;
function createXMLHttpRequest() {
if(window.XMLHttpRequest) {
//DOM 2瀏覽器
xmlrequest = new XMLHttpRequest();
}
// IE瀏覽器
else if(window.ActiveXObject) {
try {
xmlrequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlrequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {}
}
}
}
//事件處理函式,當下拉串列選擇改變時,觸發該函式
function change(id) {
//初始化XMLHttpRequest物件
createXMLHttpRequest();
//確定需要發送的URL
var uri = "second.jsp";
//設定以POST方法發送請求,并打開連接
xmlrequest.open("POST", uri, true);
//設定POST請求的請求頭
xmlrequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//確定XMLHttpRequest物件的狀態改變時的回呼函式
xmlrequest.onreadystatechange = processResponse;
//發送請求,在發送請求時發送請求引數
xmlrequest.send("id=" + id);
}
//處理服務器回應
function processResponse() {
//判斷服務器回應是否完成
if(xmlrequest.readyState == 4) {
//判斷服務器的回應是否成功
if(xmlrequest.status == 200) {
//獲取服務器的XML回應
var xmldoc = xmlrequest.responseXML
//獲取XML檔案的city節點串列
var cityList = xmldoc.getElementsByTagName("city");
//獲取用于顯示下拉選單的下拉框
var displaySelect = document.getElementById("second");
//清空串列框原有的選項
displaySelect.innerHTML = null;
//依次遍歷多個city節點
for(var i = 0; i < cityList.length; i++) {
//創建一個option節點
option = document.createElement("option");
//對于IE瀏覽器,DOM節點內的文本內容直接使用text訪問
if(cityList[i].text) {
option.innerHTML = cityList[i].text;
}
//對于DOM 2瀏覽器,DOM節點內的文本內容又是一個Text節點
else {
option.innerHTML = cityList[i].firstChild.data;
}
//依次將多個option添加到select中
displaySelect.appendChild(option);
}
}
}
}
</script>
</body>
</html>
uj5u.com熱心網友回復:
JSP的代碼<%@ page contentType="text/xml; charset=GBK"%>
<%
//????????????????
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
//???XML?????????
out.println("<citylist>");
int id = Integer.parseInt(request.getParameter("id"));
//????????????????XML???
switch(id)
{
case 1:
%>
<city>???</city>
<city>????</city>
<city>????</city>
<%
break;
case 2:
%>
<city>?????</city>
<city>??</city>
<city>????</city>
<%
break;
case 3:
%>
<city>????</city>
<city>????</city>
<city>????</city>
<%
break;
}
%>
</citylist>
uj5u.com熱心網友回復:
核對一下編碼格式uj5u.com熱心網友回復:
好家伙,你好歹是個UTF-8啊uj5u.com熱心網友回復:
檔案編碼最好用utf-8uj5u.com熱心網友回復:
我驚呆了,對啊你好歹解解碼轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/38907.html
標籤:JavaScript
上一篇:大佬們快看一下啊
