关于axios 配置的原因 为什么then和catch 反过来了 then应该是回调成功的函数才对
axios.js相关配置
import axios from 'axios'
import qs from 'qs'
// axios 配置
axios.defaults.timeout = 5000;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
axios.defaults.baseURL = 'http://192.168.1.120:8080/arbmanager';
//POST传参序列化
axios.interceptors.request.use((config) => {
if(config.method === 'post'){
config.data = qs.stringify(config.data);
}
return config;
},(error) =>{
console.log('错误参数')
return Promise.reject(error);
});
//返回状态判断
axios.interceptors.response.use((res) =>{
if(!res.data.success){
// _.toast(res.data.msg);
return Promise.reject(res);
}
return res;
}, (error) => {
console.log('错误')
return Promise.reject(error);
});
export function fetch(url, params) {
return new Promise((resolve, reject) => {
axios.post(url, params)
.then(response => {
resolve(response.data);
}, err => {
reject(err);
})
.catch((error) => {
reject(error)
})
})
}
export default {
/**
* 用户登录
*/
Login(params) {
return fetch('/logindo.htm', params)
},
login.vue调用axios
loginBtn(){
let data = {
'loginName': this.email,
'loginPwd': this.password
}
api.Login(data)
.then(res => {
let newData= JSON.parse(pako.inflate(res.data, { to: 'string'
}));
console.log(res)
console.log(newData)
//这里then应该是回调成功之后的函数才对 上面的pako只是一个解密js的一个插件
})
.catch(error => {
//但是现在是catch回调成功在做相应的操作了,比如说判断用户名正确与否这个应该是then里面做的事情才对
// this.$router.push({path:'/home'})
// let newData= JSON.parse(pako.inflate(error.data, { to: 'string' }));
// console.log(newData)
})
关于axios 配置的原因 为什么then和catch 反过来了 then应该是回调成功的函数才对
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
原因出在这里的if判断字段问题,后台加密之后这个地方的值有点不一样少了一层操作 ,对应好字段即可
恩,这个问题我也碰到了
控制台输出res的内容发现返回数据的格式如下:
发现数据格式里根本就没有
res.data.success
所以在判断!res.data.success
一直为true,所以我更改为如下方式:然后就可以了
老哥,解决了没,我的也是这样,怎么解决的