首页新闻找找看学习计划

ajax+php返回json问题

0
[已解决问题] 解决于 2018-11-19 12:22
[{"Bna":"twr34ar","Zti":"1","Bdata":"2018-10-01"},{"Bna":"vg34qb","Zti":"2","Bdata":"2018-10-08"}]

php+ajax
php返回时用json_encode($rows)。

        $.ajax({
            type: "post",
            url: "XX.php",
            data: {"vali":1},
            success: function (msg) {
                alert(msg);
            }
        });

上面的两行就是返回的msg
我想解析它们,添加到html里显示。

alert(obj[0].name) 这样不行。等等。
百度了些方法,都不好用。
有什么办法?
谢谢

问题补充:

typeof(msg)显示是string
我用
var obj = eval('(' + str + ')');
或者
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
或者
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
都不好使,什么显示都没了。。

还没有的主页 还没有 | 菜鸟二级 | 园豆:475
提问于:2018-11-12 23:51
< >
分享
最佳答案
1

ajax 请求的时候添加一个返回值类型:
dataType:"JSON",

奖励园豆:5
画笔灬 | 小虾三级 |园豆:898 | 2018-11-13 08:40

typeof(msg)显示是string
加了dataType:"JSON",之后什么显示都没了。alert也不显示任何东西

还没有 | 园豆:475 (菜鸟二级) | 2018-11-13 17:28

@还没有: 那可能是走error 了,你访问跨域没有?

画笔灬 | 园豆:898 (小虾三级) | 2018-11-13 17:30

@面具灬:

            error: function(err) {
                alert(typeof(err));
                alert(err.responseText);
                alert(err.responseText[0]);
            }

我在$.ajax又加了个error:
发现数据返回到这里来了。
alert(typeof(err)); 类型是object object
alert(err.responseText);类型是string,但数据是正确的
alert(err.responseText[0]);只显示一个 [

怎么能success中返回呢?
而且还是取不到数据啊。

还没有 | 园豆:475 (菜鸟二级) | 2018-11-14 14:01

@还没有: https://www.cnblogs.com/calamus/p/5794700.html 参考一下这篇文章,看下是不是哪里写错了

画笔灬 | 园豆:898 (小虾三级) | 2018-11-14 14:11

@面具灬:
是数据类型不对。php的json_encode($rows)和ajaxr 的datatype:json结果好像不一样
我也看不到php传过来的是什么结构。
可以推荐调试工具吗,
我用的 是phpstorm。

还没有 | 园豆:475 (菜鸟二级) | 2018-11-17 10:01

@还没有: 呃呃,我没写过php,我写java和c#的

画笔灬 | 园豆:898 (小虾三级) | 2018-11-17 10:51
其他回答(4)
0

你先用typeof 看下msg类型,如果是字符串就先解析为对象类型。如果是对象类型就可以直接使用。

稻草人lxb | 园豆:255 (菜鸟二级) | 2018-11-13 01:17
0

使用json_encode($rows)返回值应该是json数据,在ajax中设置响应数据类型为json,然后采用(.)点的方法获取所需的数据

我心悦你 | 园豆:73 (初学一级) | 2018-11-13 11:19
0

前端的调试, 要学一下用 代码审查(按一下F12键打开), 在里面的网络中, 可以查看页面与后台的数据交互.
另外, 别只是用alert进行调试输出, 还有 console.log(object) 这类, 不过这个需要结合前端的代码调试审查功能

dilex | 园豆:104 (初学一级) | 2018-11-19 15:04

代码审查 这个功能每个浏览器的名称不一样的, 但都是按F12键打开, 了解一下

支持(0) 反对(0) dilex | 园豆:104 (初学一级) | 2018-11-19 15:05
0

你看看php用exit返回,效果是不一样的

猿人笔记 | 园豆:202 (菜鸟二级) | 2019-04-29 15:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册