由ajax状态为200却进入error引发的一系列问题

原创 小枝节KKW 随笔 ajax 259阅读 2017-05-26 13:56:33 举报

今天遇到一个很奇怪的问题,ajax调用明明code都为200了,却没有进入success,而是进入了error中,一番查询之后才知道了问题所在。
javascript 代码

是服务返回的数据的问题,数据为 {"data":{1206567:4588,1206608:2327,1206641:1208,1206471:6113},"code":0,"msg":"success"}
[p]乍一看很正常,实际上不是正确的json格式(key为数字形式),因为dataType为json,所以才会进到error当中,只要把dataType改为‘text’,就能进到success中了。
遇到这种情况,除了找服务改数据格式之外,作为一枚自力更生的小前端,自己又该怎么解决呢

下边就来说说怎么把这个string转为json格式~[/p]
JSON.parse()肯定是不行的,因为这不是严格的json数据。

1.利用eval方法
javascript 代码

2.利用new Function
javascript 代码

这两种方法都能把这段string转为json对象,拿到json后边就可以自由操作了
但是还有一个小问题需要注意,就是取数据的时候data.key会报错,只能用data[key]形式。

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复