Vue.js拦截器配置:仅返回响应成功时的Result字段
如何修改Vue.js拦截器仅返回响应中的Result部分
我来帮你调整这个拦截器,刚好能满足你只拿到Result数组的需求,修改后的代码如下:
Vue.http.interceptors.push(function (request, next) { this.$Progress.start() next(function (response) { this.$Progress.finish() // 检查服务器响应是否成功 if (response.body.Success) { // 直接返回Result部分,后续请求拿到的就是这个数组 return response.body.Result } else { // 处理请求失败的情况,把错误抛出以便后续捕获 return Promise.reject(response.body.Error || '请求处理失败') } }) })
关键说明:
- 首先在
next的回调里完成进度条的结束操作,避免进度条一直处于加载状态 - 我们通过
response.body拿到服务器返回的完整JSON对象,判断Success字段是否为true - 当成功时,直接返回
Result数组,这样你后续调用请求的代码(比如this.$http.get('/api/payment').then(result => { /* 这里的result就是Cash/Check/Bank的数组 */ }))就能直接拿到需要的数据 - 如果请求失败,用
Promise.reject抛出错误信息,你可以在.catch()里统一处理错误逻辑
内容的提问来源于stack exchange,提问作者Rasik
相关产品推荐
相关产品推荐

