今天在进行http请求时,出现了一个问题,同样的接口,返回的结果一模一样,但是jquery的ajax进行请求,可以直接result.code取到值,但是在vue-resource里必须用result.body.code才能取到,这让我很是纳闷,结果找了半天,vue-resource在处理result时,会在它的外层包一个body层,真正的数据包在了body层。就这么个基础的问题,居然不知道,在这贴出来,给自己提个醒,也给其他像我一样刚入行没多久的菜鸟同胞们提个醒,以免走弯路。虽然vue用了一年多了,这个问题还真是第一回,要不是这回jquery和vue一起用了,也许还发现不了。。。
下面贴出vue-resource的代码
1 that.$http.post( 2 ????????????????????url, 3 ????????????????????{ 4 ????????????????????????"train":train, 5 ????????????????????}, 6 ????????????????????{emulateJSON: true} 7 ????????????????).then( 8 ????????????????????//成功回调 9 ????????????????????function (result) {10 ????????????????????????if(result.body.code == 10000){11 ???????????????????????????12 ????????????????????????}13 ????????????????????}14 ????????????????);
这是jquery的$ajax
1 $.ajax( 2 ????????????{ 3 ????????????????url: url, 4 ????????????????dataType: ‘json‘, 5 ????????????????type: ‘POST‘, 6 ????????????????data: {‘train‘: train}, 7 ????????????????success: function (result) { 8 ????????????????????if(result.code == 10000){ 9 ???????????????????????10 ????????????????????}11 ????????????????}12 ????????????}13 ????????);
给菜鸟们看一下,前辈们就忽略了吧。。。
终于掉坑里了!!!vue-resource和jquery的ajax不一样
原文地址:https://www.cnblogs.com/wangpengbin/p/8718084.html