首页 新闻 会员 周边

前端问题:新浏览器解析不出来json对象

0
悬赏园豆:50 [已解决问题] 解决于 2018-05-18 11:18
response.data是一个对象,可以得到
response.data.data子对象就无法得到,undefined。

旧的浏览器是正常执行的,新的浏览器才这样出错。

这是哪里的问题?

var resource = this.$resource('xxx', {});
resource.get({}).then(function (response) {


问题补充:

尝试过修改header头,不行。

尝试过把字符串直接var obj= JSON.parse, 是可以的。

 

但是这样修改太麻烦了,几百个地方都有修改。

 

有更简单的办法不?

甲_乙_丙_丁的主页 甲_乙_丙_丁 | 小虾三级 | 园豆:804
提问于:2018-05-17 16:46
< >
分享
最佳答案
0

let _data = JSON.parse(response.data)

估计是JSON字符串,转成对象。

收获园豆:30
酸番茄 | 初学一级 |园豆:87 | 2018-05-17 16:49

是的。这样修改可以。

但是一个项目我都不知道有多少页面,每个页面每个这样修改受不了呀。

有简单的办法不?

甲_乙_丙_丁 | 园豆:804 (小虾三级) | 2018-05-17 16:53

@一步之遥>>: 那估计只能考虑在后端处理了,统一返回对象。

酸番茄 | 园豆:87 (初学一级) | 2018-05-17 16:55

@码上就有钱: 后端的返回是没问题的。因为旧的浏览器能解析,而且我看了一下json结果好像没什么问题

甲_乙_丙_丁 | 园豆:804 (小虾三级) | 2018-05-17 16:56

@一步之遥>>: 那继续等园友回答了,暂时不知道怎么办

酸番茄 | 园豆:87 (初学一级) | 2018-05-17 16:58

@码上就有钱: response.data 和 response.bodyText 有啥区别? body还是bodyText?

甲_乙_丙_丁 | 园豆:804 (小虾三级) | 2018-05-17 17:22

@一步之遥>>: 取body呗 后者明显是字符串的对象了

酸番茄 | 园豆:87 (初学一级) | 2018-05-17 17:23
其他回答(6)
0

改为分两步试下,var obj = response.data,在用obj.data

收获园豆:10
烟味i | 园豆:216 (菜鸟二级) | 2018-05-17 16:50
0

弄个json包就可以了推荐阿里的

DanBrown | 园豆:1321 (小虾三级) | 2018-05-17 17:07

放在服务器端? 然后这个json包就能帮助前端response.data.data 解析?

支持(0) 反对(0) 甲_乙_丙_丁 | 园豆:804 (小虾三级) | 2018-05-17 17:24

@一步之遥>>: 比如说你再数据库里差出来一个集合的数据,然后被json包转换一下直接返回给前台,前台不用做任何处理就能解析

支持(0) 反对(0) DanBrown | 园豆:1321 (小虾三级) | 2018-05-17 17:42

@DanBrown: 查看过了,现在后台返回的结果是正确的json结构。旧版浏览器都能解析的。

支持(0) 反对(0) 甲_乙_丙_丁 | 园豆:804 (小虾三级) | 2018-05-17 18:32
0

如果你的json格式是严格准确的,那么转一次就行了的。如果像这种:

{
"data": {
"value": "{"name":"yang","value":"wen"}"
}
}

 

那就只能一步一步转了。

龙行天涯 | 园豆:1794 (小虾三级) | 2018-05-17 17:24
0

什么新浏览器呀?

会长 | 园豆:12401 (专家六级) | 2018-05-17 17:57

chrome新版。

这是个老项目。

支持(0) 反对(0) 甲_乙_丙_丁 | 园豆:804 (小虾三级) | 2018-05-17 18:32
0

1.Ctrl+Shift+J 打开开发者工具,进行调试。输出response.data的内容——使用console.log(...)。

2.javascript或jquery的版本不对吧,jquery更新很快。

收获园豆:5
快乐的凡人721 | 园豆:3920 (老鸟四级) | 2018-05-17 21:06

console.log输出的response.data是个对象,字符串。json格式正确

但是输出respnose.data.data就是undefined。

支持(0) 反对(0) 甲_乙_丙_丁 | 园豆:804 (小虾三级) | 2018-05-17 21:33

@一步之遥>>: 截个图来看看数据会更好分析,当然,你要的简单方法我给不了,

支持(0) 反对(0) 快乐的凡人721 | 园豆:3920 (老鸟四级) | 2018-05-17 21:57

有人说是vue-source版本可能有bug

这个怎么更新版本到服务器呀? 

支持(0) 反对(0) 甲_乙_丙_丁 | 园豆:804 (小虾三级) | 2018-05-18 10:28
0

如果是历史项目,你可以修改基础库的部分,如ajax请求的地方也是个方式

收获园豆:5
2012 | 园豆:21230 (高人七级) | 2018-05-18 08:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册