axios catch捕获了本应该在then里面的数据

发布于 2022-09-06 20:52:31 字数 2166 浏览 10 评论 0

用axios发起请求,服务端返回了正确的数据,但是数据却被catch捕获了,抛出的error就是本应该在response里的数据,而且用error.data赋值居然成功了。新手一个,尝试了用别人封装好的也是一样的结果,请教下各位大佬是什么原因导致的。

clipboard.png

补充一下header截图:
clipboard.png

clipboard.png

axios请求代码:

    methods: {
        getData(){
            let url = 'api/public/zjinfo';
            axios.get(url).then((response)=> {
                    this.zjkdata = response.data;
                    console.log(response);
                }).catch((error)=> {
                    this.zjkdata = error.data; 
                    console.log(error);
            });
        }
    }
    

别人封装的axios:

// axios 配置
axios.defaults.timeout = 5000;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
axios.defaults.baseURL = 'http://localhost';

//POST传参序列化
axios.interceptors.request.use((config) => {
    if(config.method  === 'post'){
        config.data = qs.stringify(config.data);
    }
    return config;
},(error) =>{
    //_.toast("错误的传参", 'fail');
    return Promise.reject(error);
});

//返回状态判断
axios.interceptors.response.use((res) =>{
    if(!res.data.success){
        // _.toast(res.data.msg);
        return Promise.reject(res);
    }
    return res;
}, (error) => {
    //_.toast("网络异常", 'fail');
    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)
            })
    })
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

锦欢 2022-09-13 20:52:31

axios全局设置问题,已解决。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文