DWR看不太懂,data从哪里来的?页面里也没有,data长度是什么意思?
function setState()
{
City.getState($("#cnation").val(),function(data){
if(data.length>0)
{
$("#cprovince").empty();
$("#ccity").empty();
for(var i=0;i<data.length;i++){
if(data[i]=="${city.cprovince}")
{
$("#cprovince").append("<option value='"+data[i]+"' selected=\"selected\" >"+data[i]+"</option>");
}else{
$("#cprovince").append("<option value='"+data[i]+"'>"+data[i]+"</option>");
}
}
}
window.setTimeout("500",setCity());
})
}

解决方案 »

  1.   

    http协议不是有实体信息头么。就那里data格式 {key-value对}一般格式,也有很多不是这样的。
      

  2.   

    这个data对应了你java方法里的返回值.
    上文标注的那个data是个形参.
    function(data)是个匿名函数,他作用是City.getState方法执行完后,被调用.又称回调函数.整个过程相当于请求一个dwr的Servlet,该servlet通过dwr配置文件找到对应的java方法并执行,将执行后结果(做需要的类型转换,如map转换为js的json对象)通过response写到页面.刚开始请求dwr的servlet的时候,在请求对象上绑定了类似onreadystatechange的事件,该事件的方法为一个匿名函数function(data)
    .这样返回到页面并是成功状态的话,会执行该函数.个人理解.不对请指正.