调用接口时,生产环境,路径加斜杠“/”和不加的区别

在做BI项目的时候,因为后台修改了接口的前缀,导致我直接从后台获取URL,但是后面出现了一个奇怪的现象

在本地环境的时候正常,首页饼图可以正常显示,但是生产环境就出现问题,不能正常显示,找了很久一直没有找到问题的原因,查看问题之后,发现生产环境在前面添加了一个项目名称‘tb’,正常接口应该是下面这样

 

之前用的是原生的axios,以为是这个问题,但是我改成了封装的axios,发现问题还是没解决,最后找到了问题的原因,是因为在调用接口的时候前面没有  ‘/’的原因

解决办法:

在接口前面添加‘/’就可以了

代码:

        //运行态调用接口获取数据
        async getSqlData() {
            let api = this.allParamsObj.configData.selTableName
            //原生方式
            // axios.defaults.baseURL = process.env.VUE_APP_URL
            // await axios.get('/'+api, {
            //     params: this.form
            // })
            // .then(res => {
            //     if (res.data.code == 200) {
            //         let data = res.data.data
            //         this.relationship = data.relationship
            //         this.renderBiData && this.renderBiData(JSON.stringify(res.data))
            //     }
            // })
            //用axios封装的 下面这种方式注意data
            await this.$ajax.get('/'+api, this.form).then(res => {
                if (res.code == 200) {
                    let data = res.data
                    this.relationship = data.relationship
                    this.renderBiData && this.renderBiData(JSON.stringify(res))
                }
            })
        },

原因分析:

加斜杠和不加斜杠的区别就是,斜杠会直接指向项目里面的具体文件,而不加的时候只会指向项目的最外层,所以就会拼接上一个项目名称

原文地址:https://www.cnblogs.com/pengfei25/p/15234812.html