我应该如何在Vue JavaScript应用程序的axios调用中使用.then和.catch?

时间:2019-01-15 16:45:08

标签: vue.js promise vuejs2 axios

我在Vue应用程序中挂载时调用此代码

mounted() {
this.isMounted = true;

axios.get('https://randomuser.me/api/').then((response) => {
  console.log("Response is" + response)

}).catch(function(error) {
  // handle error
  console.log("Error is: " + error);
})

}

总是出现相同的错误:错误:请求失败,状态码为404

我已经测试过API,并且运行良好,总是以200响应。 我不知道我在做什么错

2 个答案:

答案 0 :(得分:0)

尝试此代码。

mounted () {
    this.isMounted = true;
    axios
      .get('https://api.coindesk.com/v1/bpi/currentprice.json')
      .then(response => {
        console.log("Response is" + response)
      })
      .catch(error => {
        console.log(error)

      })
  }

    mounted () {  
    axios.get('https://api.coindesk.com/v1/bpi/currentprice.json')
              .then(function (response) {
               console.log("Response is" + response)
              }.bind(this))
              .catch(error => {
                console.log(error)
              })
  }

答案 1 :(得分:0)

我发现了错误。 我已经激活了模拟适配器,因此每个呼叫都由此MockAdapter处理。

array_push($subitem, array($modid));

因此,如果每个呼叫不在模拟呼叫列表中,则它将失败。 有什么方法可以只对某些特定调用使用MockAdapter吗?例如,您必须使用两个不同的API,而只想模拟其中一个