$.ajax的返回值是什么

请教js的高手,返回值jsonstr是什么,

var jsonstr = $.ajax({
url : urls,
type : "post",
data : postdata,
async : false,
cache : false
});
var jsonobj = eval('(' + jsonstr.responseText + ')');//这句是什么意思
/********************后台php代码******************/
我是用的php,这是后台代码,我要通过它访问数据库取数据,这个方法执行了没有我不知道,因为看不到返回的东西
public function get_user_info(){
$token=$_POST["token"];
$wecha_id=$_POST["wecha_id"];
$db=M('Sc');
$where['token'] = $token;
$where['wecha_id'] = $wecha_id;
$info=$db->where($where)->find();
$this->assign('info',$info);}

第1个回答  推荐于2017-11-26
$.ajax是jQuery语法,它的返回值是一个jQuery对象,
这个jQuery对象里面有一个"responseText"属性,
这个responseText属性的值是json格式的字符串。
一般是下面这种格式:
{"userList":
[
{"name":"张三","age":"20"};
{"name":"李四","age":"21"};
{"name":"王五","age":"22"}
]
}

通过eval()这个函数能把上面这种格式的字符串转换成一个Map对象。
你上面例子里的 jsonstr就是一个json字符串,jsonobj就是转换后的Map对象。
然后就可以这样操作:
jsonobj.userList[0].name --张三
jsonobj.userList[0].age --20
jsonobj.userList[1].name -- 李四
jsonobj.userList[1].age -- 21追问

这个一次是从数据库获取一条记录吗

追答

为什么会这么认为,可以任意多啊。
我的例子里面不是有个三个人吗,这个例子哪里让你不能理解吗?

这个json字符串的内容是在后台构建的,
在action里面,它实际上是一个List,你可以往这个List里添加任意多个元素。
以我的例子而言,我的action里有一个名为userList的变量,类型是List,
我在action代码里往userList里添加了三个元素:
userList.add(new User("张三", 20));
userList.add(new User("李四", 21));
userList.add(new User("王五", 22));

追问

if(jsonobj.status==1){}
else if(jsonobj.status==2){
$("#showcard1").hide();
$("#direct_to").show();}
再次请教大神,本次访问的数据表并没有status字段,最开始两条判断语句主要是判断什么东西 showcard1和direct_to是两个按钮,现在要隐藏前一个,显示后一个

追答

需要看后台的java代码,这个status的值肯定是在后台java代码中设定的。
你能根据ajax请求的“url : urls”找到对应的后台代码吗?

追问

多谢你的耐心解答,再请教个问题,我在问题补充里面说的那个问题,现在发现注释掉这一句后就可以var jsonobj = eval('(' + jsonstr.responseText + ')'); 为什么这一句影响了后面所有的语句,是因为那个函数没有定义的问题吗

追答

无论是eval(),还是responseText,都是js内置的东西,不应该有问题啊。

你能不能把alert那句换成:
alert(jsonstr.responseText);
我想知道你的responseText里面是什么。

追问

是这样的字符,string(16) "llxvbw1398494426"
问题补充里面有后台代码

追答

。。。这根本不是json字符串啊,eval()的参数不能是这种普通字符串,这一句肯定异常:var jsonobj = eval('(' + jsonstr.responseText + ')');
感觉你这代码前台和后台不配套呢,逻辑上有问题,由于不懂你的业务,我无能为力了,抱歉!

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网