今天在进行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 );
给菜鸟们看一下,前辈们就忽略了吧。。。