为什么axios不使用nuxt.config.js中的设置?

时间:2019-07-23 11:16:16

标签: axios vuetify.js nuxt.js

auxios并未使用nuxt.config.js中baseURL和browserURL的axios设置,而是将请求发送到localhost。

以下是nuxt.config.js的摘录:

  modules: [
    '@nuxtjs/axios'
  ],
  axios: {
    baseURL: 'http://192.168.8.137:8081',
    browserBaseURL: 'http://192.168.8.137:8081'
  },

这是vue文件中的代码:

<template>
  <v-treeview
    v-model="tree"
    :open="open"
    :items="items"
    activatable
    item-key="id"
    :load-children="listDir"
    :active.sync="active"
    return-object
  >
 ....
</template>

<script>
    import axios from 'axios'
    export default {
      ....
      methods: {
        async listDir(item) {
          // let url = 'http://192.168.8.137:8081/filemanager/ls'  // Works fine if hardcoded here
          let url = '/filemanager/ls'
          await axios.get(url)
            .then(....

我认为问题在于我使用的是axios.get(url)而不是$ this.axios.get(url),但是我的方法是从vuetify树视图组件调用的,而$ this不可用。 / p>

我如何获得$ this.axios?

如果将URL硬编码到axios调用中,则代码可以正常工作。

1 个答案:

答案 0 :(得分:2)

使用

import axios from 'axios'

您要导入“干净的” axios模块。 您需要使用由nuxt本身创建的axios实例。

在组件中(或在Vue动作中)仅使用(不导入axios)

this.$axios.get(...)

或(方便的$ get方法返回响应数据而不是响应对象)

this.$axios.$get(...)