【问题标题】:Dynamically set default baseURL for axios为 axios 动态设置默认 baseURL
【发布时间】:2020-06-29 15:19:39
【问题描述】:

我无法让它工作,但如果我将 defaultBaseURL 直接设置为字符串,即'http://:' 它可以工作,我不断得到 404:

我看不出我做错了什么,但我认为这与承诺有关。

  import Vue from 'vue'
    import App from './App.vue'
    import router from './router'
    import axios from 'axios'
    
    setBaseURL();
    
async function getIp() {
  axios.get("https://api.ipify.org?format=json")
    .then(x => {
      x = 'http://' + JSON.stringify(x.data.ip).replace(/"/g, '') + ':8081'
      return x
    });
}
async function setBaseURL() {
  axios.defaults.baseURL = await getIp();
}

Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

【问题讨论】:

    标签: javascript node.js vue.js axios


    【解决方案1】:

    嘿,您的某个异步函数似乎没有返回任何承诺。 你可以这样做:

    async function getIp() {
      cosnt x = await axios.get("https://api.ipify.org?format=json")
      return 'http://' + JSON.stringify(x.data.ip).replace(/"/g, '') + ':8081'
    }
    

    或添加返回到axios.get("https://api.ipify.org?format=json"), 否则await getIp() 不知道需要等待什么,如果有帮助,请告诉我。干杯。

    【讨论】:

    • 感谢@EvgenyKlimenchenko!它适用于PC,但不适用于Android。知道为什么会这样吗?
    猜你喜欢
    • 2018-04-11
    • 1970-01-01
    • 2020-08-17
    • 2020-11-22
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 2019-04-14
    相关资源
    最近更新 更多