日期:2014-05-17  浏览次数:20782 次

jQuery.ajax()请求struts2数据 返回data值了undefined
我的jquery的代码 
jQuery.ajax({  
  type:"POST",  
  url:"managerName",  
  // data:"systemkey="+selectValue, // 传入的参数  
  timeout: 10000,  
  data:null,
  dataType:"json",
   
  error : function(data) {
alert(data.returnValue);
},
   
  success:function(data){  
alert("success");
  setValue(data);  
  } 
 
  }); 
 
}  

后端action 的代码
public String managerName(){
response.setContentType("application/xml;charset=UTF-8");
  PrintWriter out = null;
try {
out = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}

  try
  {
  String context=""; 
  List<ManagerPo> managerList = (List<ManagerPo>) this.service.getList(namespace+"getManager", null);
  for(ManagerPo manager : managerList ){
  context += manager.getManagerId()+":"+manager.getUserName()+",";
  }
  out.print(context);
 
   
  } finally
  {
  out.close();
  }
   
  return null;

}

struts.xml文件


 <action name="managerName" class="registerAction" method="managerName"><!-- 向select中动态增加manager元素 -->
</action><!-- -->

是不是只要将返回值放入out 对象里就可以了?
但是jquery 执行了error : function(data)。
急!
 






------解决方案--------------------
先搞清楚问题出在哪里。
把那个链接不要用ajax请求,直接在浏览器里访问,看看返回什么结果,如果出错,那就是后台错误。如果页面返回的数据是你想要的,那么就是js处理错误。或者你用firebug看一下,看看请求的返回是什么。先搞清楚问题是出哪里了。