axios 统一配置参数,为什么无效?

图片描述希望无论是get还是post请求,都会携带userID信息。所以就把post请求的统一参数写在了config.data里,get的统一参数写在了get里。
但是!!问题来了, ...config.params 并不会合并参数。
具体代码如下。

Axios.interceptors.request.use(
    (config) => {
        if ( config.method === 'post' ) {
            if (sessionStorage.getItem('fwqAdmin')) {
                config.data = querystring.stringify({
                    userId: JSON.parse(sessionStorage.getItem('fwqAdmin')).userId,
                    ...config.data
                });
                console.log(config);
            }
        } else if ( config.method === 'get' ) {
            if (sessionStorage.getItem('fwqAdmin')) {
                config.params = {
                    userId: JSON.parse(sessionStorage.getItem('fwqAdmin')).userId,
                    ...config.params
                };
            }
        }
        config.headers.Authorization = sessionStorage.getItem('fwqAdmin') ? JSON.parse(sessionStorage.getItem('fwqAdmin')).accessToken : '';
        return config;
    },
    error => {
        console.log(error);
        return Promise.reject('请求拦截报错信息' + error);
    }
);

具体使用:

requestWxList() {
    let params = {
        pageNum: this.pageNav.curPage,
        pageSize: this.pageNav.pageSize
    };
    this.$http.get('/result/listSummarysPage',params)
        .then((res) => {
            console.log(res);
            this.tableData = res.data.data.items;
            this.pageNav.total = res.data.data.total;
        })
        .catch((err) =>{
            console.log(err);
        });
},
    
    
    
    
    
  

阅读 5.1k
3 个回答

给你看一下axios源码 get请求的第二个参数是config
你把params当成config传进去 config.params 并没有值

图片描述

应该这样调用 this.$http.get('/result/listSummarysPage',{ params: params })

楼上的老哥们已经给出了正确的答案,但是只能采纳一个答案,抱歉了... 希望答案能帮助后来的人。。 谢谢各位

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题