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调用中,则代码可以正常工作。
答案 0 :(得分:2)
使用
import axios from 'axios'
您要导入“干净的” axios模块。 您需要使用由nuxt本身创建的axios实例。
在组件中(或在Vue动作中)仅使用(不导入axios)
this.$axios.get(...)
或(方便的$ get方法返回响应数据而不是响应对象)
this.$axios.$get(...)