ajax中返回json获取问题



$.ajax({
           success: function(getdata){
           
           }
    });
    
    

ajax响应的是 {"success":"1","error_code":"u53d1u5e03u6210u529f"}

我在获取时直接 getdata.success 就可以直接取到了

而用 var obj=$.parsejson(getdata) 处理后在
obj.success 就是直接objnull

php代码部分为

$json = array('success'=>$success,'error_code'=>$error_code);
        echo json_encode($json);

请问为什么不用处理getdata,关于ajax 使用json格式在success处理那一块有点不懂,普通的alert在ajax用不了,使用console.log()也用不了,各位如果ajax中间出了问题一般是怎么调试的

阅读 4.6k
4 个回答

Ajax里面有个datatype这个参数,这个参数的意思是指定返回的数据类型,如果你这里写的是json格式的话,成功之后的回调方法里就不用再把数据转换为json了,因为你php已经输出了json格式.

$.get或者$.postAjax方式在回调方法里则需要把数据转换为你需要的数据类型,因为这里没有指定返回数据类型,就是这样。

首先,是$.parseJSON,不是parsejson,然后,在success里面可以直接用console.log打印出来getdata

如果是简单的获取数据的话推荐使用jquery的$.getJSON()方法,例如:

$.getJSON('test.json', function(data){
   for (var i = 0; i < data.rows.length; i++) {
      $('#test').append('<p>' + data.rows[i].realName + '</p>');
   }
});

然后,返回的data数json对象,可以使用console.log(data)看数据结构的

先直接在success中打印getdata看返回的数据是字符串还是对象

如果是对象,不用做parseJSON处理,因为jquery帮你处理好了

如果是字符串,需要 $.parseJSON(getdata),但不是小写的 $.parsejson(getdata)

至于你说的alert不管用,应该是其他地方出的问题影响的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题