jquery ajax 返回json类型,但是取不到内容,data.XXX得到的永远是undefined。N个小时前还是好的......

提问者:进击的小新 提问时间:2018年02月28日 人气:66
用户提问
$.ajax({
url:"checkcode.action",
type:"post",
async:false,
data:{
chkCode:function(){
return $('#chkCode').val();
}
},
dataType:'json',
dataFilter:function(data,type){
console.log(data);
console.log(data.checked+" "+data.chkCode);
result = data.checked;//这个result在ajax外定义了
console.log("result:"+result);
}
});
这是我ajax部分的代码,在fire debug中,我输出了data,

另外也尝试输出data.checked 和data.chkCode
但是,都是undefined,这到底是哪里错了,求高手指教!!
推荐答案
你已经拿到数据了,看样子是数据没有解析为json格式
jsondata=$.parseJSON(data);
console.log(data.chkCode);
试一下
辅助答案
用户:jissca
2018年03月24日
你已经得到的数据,显然数据不被解析JSON格式
jsondata = $ parseJSON(数据);

的console.log(data.chkCode)的;
尝试
用户:Alloway
2018年04月01日
你已经得到的数据,显然数据不被解析JSON格式
jsondata = $ parseJSON(数据);

的console.log(data.chkCode)的;
尝试
用户:熊家湾的妹子
2018年04月16日
直接alert(data)看看是什么东西,如果是一串字符串的话,那么说明你的Json字符串还没有转换为Json对象,如果是object object的话,那么说明已经是Json对象了,问题要一步一步的分析,笼统的看,很不容易看出来到底是哪里出错了,首先要缩小错误的范围。
用户:疯狂玛克斯
2018年04月21日
既然你的debug里面data是有数据的,那undefined只能是result了……检查下result的范围,还有类型……