Vue.js入口文件只要指定axios的baseURL就打不开网页

import axios from 'axios'
import Qs from 'Qs'
let http = axios.create({
  baseURL: 'http://127.0.0.1/netdisk/public/',
  timeout: 10000,
  transformRequest: [function (data) {
    // Do whatever you want to transform the data
    return Qs.stringify(data)
  }]
})
Vue.use(http)
Vue.prototype.$http = http

也就是说只要在main.js中不把baseURL: 'http://127.0.0.1/netdisk/public/',这行代码注释,网页打开就白屏,控制台报错Uncaught TypeError: Cannot read property 'replace' of undefined,但是Webpack打包无任何错误,这是怎么回事?

因为我上线之后必须改接口地址,我不想一个一个去组件里面修改,所以必须想办法解决这个问题,谢谢各位了!

阅读 9.2k
1 个回答

baseUrl 无关。

上个问题说过了 axios 不属于 Vue 的插件,自然也就不能使用 Vue.use 来安装。

正确姿势:

// ajax.js
import axios from 'axios'

export default {
    install(Vue, option = {}) {
        const http = axios.create(option)
        // 1.通过 Vue.http 调用
        Vue.http = http
        // 2.通过 this.$http 调用
        Vue.prototype.$http = http
    }
}

// 入口文件
import Ajax from './ajax.js'
Vue.use(Ajax, {
    baseURL: 'http://127.0.0.1/netdisk/public/'
})

https://vuefe.cn/v2/guide/plu...

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