ajax+struts报java.lang.IllegalStateException请高手指教
JS
function getResult(stateVal)
{
var url = "./sample.do?method=changeAjax";
if(window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}else if(window.ActiveXObject)
{
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if(req)
{
req.open("GET",url,true);
req.onreadystatechange = complete;
req.send(null);
}
}
function complete()
{
if(req.readyState == 4)
{
if(req.status == 200)
{
var city = req.responseXML.getElementsByTagName("city");
//alert(city.length);
var str = new Array();
for(var i=0;i<city.length;i++)
{
str[i] = city[i].firstChild.data;
}
alert(document.getElementById("city"));
buildSelect(str,document.getElementById("city"));
}
}
}
function buildSelect(str,sel)
{
sel.options.length=0;
for(var i=0;i<str.length;i++)
{
sel.options[sel.options.length] = new Option(str[i],str[i])
}
}
JSP
<select name="state" onChange="getResult(this.value)">
<option value="">selsect</option>
<option value="zj">zj</option>
<option value="zs">js</option>
</select>
<select id="city"></select>
ACTION
response.setContentType("text/xml");
response.setCharacterEncoding("UTF-8");
response.setHeader("Cache-Control","no-cache");
String state = request.getParameter("state");
StringBuffer sb = new StringBuffer("<state>");
if("zj".equals(state))
{
sb.append("<city>hz1</city><city>hz2</city>");
}else if("zs".equals(state))
{
sb.append("<city>nj</city><city>yz</city><city>sz</city>");
}
sb.append("</state>");
PrintWriter out = response.getWriter();
out.write(sb.toString());
out.close();
我觉得是ACTION中的问题,是不是和STRUTS中的response有冲突,请问应该怎么解决.谢谢.