xyy-vue icon indicating copy to clipboard operation
xyy-vue copied to clipboard

axios按照你封装,然后then()里面不执行

Open YTU94 opened this issue 6 years ago • 5 comments

我想问下为什么,是不是因为使用promise的原因,求help

YTU94 avatar Jul 10 '17 08:07 YTU94

你catch一下,看是不是请求出错了

hzzly avatar Jul 10 '17 10:07 hzzly

解决了,我看了下是你在配置axios时,判断放回状态成功时用的是reject导致后续不执行,我换成resolve就可以(我理解的)。

YTU94 avatar Jul 11 '17 01:07 YTU94

@YTU94 //返回状态判断(添加响应拦截器) axios.interceptors.response.use((res) => { //对响应数据做些事 if (!res.data.success) { return Promise.reject(res); } return res; }, (error) => { // _.toast("网络异常", 'fail'); return Promise.reject(error); }); 其中如果 res.data.success 不存在,走reject,可能是这有问题。比如我们后端一直返回res.data.status='ok'啥的,么有success

dtdths avatar Aug 08 '17 03:08 dtdths

了解了,谢谢

YTU94 avatar Aug 08 '17 04:08 YTU94

每个服务器返回的成功标志不一样,大部分返回status=200

//返回状态判断 axios.interceptors.response.use((res) =>{ if(!res.status==200){ // _.toast(res.data.msg); return Promise.reject(res); } return res; }, (error) => { // _.toast("网络异常", 'fail'); return Promise.reject(error); });

把楼主的if (!res.data.success) 改为 if(!res.status==200) 我本地测试OK

TonyDalian avatar Aug 22 '17 01:08 TonyDalian