如何从Vue.js中的axios响应访问响应数据

时间:2018-08-24 06:16:58

标签: vue.js axios

我的服务器Api响应如下:-

{"data":{"databases":["rohit_one_test"]},"error":null,"success":true}

我正在使用带有vue js的axios进行呼叫。

// axiosget函数

import axios from 'axios';

export function axiosGet (url) {
  return axios.get(url,{ headers: {'Authorization': 'Basic token'}})
    .then(function (response) {
        return response.data.data;
    })
    .catch(function (error) {
        return 'An error occured..' + error;
    })
}

我在其他地方这样称呼它:-

showdblist(){
      this.url=API_LOCATION+"/tools/mysql/resources/databases/"+this.domain;
      this.dbs=axiosGet(this.url);
      console.log(this.dbs);

}

当我登录dbs变量时,它具有类似这样的内容。

此处的屏幕截图:-https://prnt.sc/kmaxbq

我的问题是如何在dbs变量中访问数据库的名称?

1 个答案:

答案 0 :(得分:2)

好吧,这是一个承诺被退回,因此您从承诺解决中获得的回报无济于事。相反,将其视为已返回的承诺,并像这样解决它:

async showdblist() {
    this.dbs = await axiosGet(this.url)
    // now this.dbs is correct
}

如果您不能使用async / await,请像对待常规诺言一样对待它:

axiosGet(this.url)
    .then((response) => {
        this.dbs = response.data.data
    })