动态设置axios的默认baseURL

时间:2020-06-29 15:19:39

标签: javascript node.js vue.js axios

我无法使用它,但是如果我直接将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')

1 个答案:

答案 0 :(得分:0)

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

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()不知道需要等待什么,请告诉我是否有帮助。欢呼。