为什么回调函数中收到的data值是一个document对象而不是我想要的那个str字符串呢?

java代码: 
public class AjaxAction extends ActionSupport { 
public void getDept() { 
(中间省略,只写了处理结果) 
String str={"1":{"Dname":"光电信息科学技术学院"},"2":{"Dname":"化学化工学院"}}; 
out.println("str"); 
out.close(); 


struts.xml代码: 
<action name="getDept" 
class="AjaxAction" method="getDept"> 
</action> 
js代码 
$(document).ready(function getDept() { 
$.get("getDept", null, function (data) { 
var obj = eval(data); 
}) 
}); 

慕容708150
浏览 141回答 3
3回答

UYOU

你用json格式 把 string类型封装成 对象,然后再把json对象解析为 string类型,这样应该就OK了吧,。function checkExist(){//使用 Ajax 的方式 判断数据库中是否有该用户的名字(注册的时候)alert($("#name").val());$("#nameW").empty();var url = "regiValiAndLoginAjax!isNameExist";//获取表单值,并以json的数据形式保存到params中var params = {name:$("#name").val()}//使用$.post方式&nbsp;$.post(url, //服务器要接受的urlparams, //传递的参数&nbsp;function cbf(data){ //服务器返回后执行的函数 参数 data保存的就是服务器发送到客户端的数据//alert(data);var member = eval("("+data+")"); //包数据解析为json 格式&nbsp;&nbsp;isExist = member.nameExist;if(member.nameExist == "false"){isNameT = "true";namePass = true;//$("div[id!='nameW4']").empty();alert("恭喜你,用户名可用的啦");$("#nameW4").show("slow");$("#nameW3").hide("slow");$("#name").attr("disabled", true);$("nameW1").css("color", "#333333");}else{alert("用户名已存在,请重新输入");namePass = false;$("#nameW3").show("slow");$("#nameW4").hide("slow");isNameT = "false";}},&nbsp;"json" //数据传递的类型 json);}上面是 jsp 的页面代码:下面是java中的代码;//以下是ajax的访问的方法开始public String isNameExist(){//判断用户的注册名在数据库中是否存在的 啦vali = new Validation();name = this.getName();System.out.println("userName = " + name);boolean exist = false;String isExist = "false";try {exist = this.userService.existsName(name);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}if(exist){isExist = "true";}else{this.getSession().put("name", this.getName());System.out.println(this.getSession().get("name").toString());}vali.setNameExist(isExist);JSONObject jo = JSONObject.fromObject(vali);result = jo.toString();System.out.println(result);return SUCCESS;}其实json格式对数据的封装是很方便的,,ajax + jquery + json 应该是完美的搭配吧&nbsp;&nbsp;

森栏

1:out.println("str"); //去掉引号2:var obj = eval(data); //在这里你把data值转换成了对象如果要直接返回str:var obj = data;

SMILET

$.get("getDept", null, function (data) {&nbsp;var obj = eval(data);&nbsp;},json)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java