rest - 如何在 nuxt js 的 8080 端口上配置在 localhost 上运行的 API URL?
问题描述
我有以下 vue 文件。我的 REST API 基本 URL 是http://localhost:8080/api/。当我直接访问http://localhost:8080/api/dfc/system/docbases时,我得到了如图所示的响应。
["gr_swy","SubWayX_DEMO"]
但我想通过在http://localhost:3000/restapi/上运行的 nuxt js 获得响应。我试图关注所有文章,但无法弄清楚我做错了什么。
<template>
<div class="container">
{{docbases}}
</div>
</template>
<script>
import axios from "axios";
#import axios from "../../.nuxt/axios"; (tried both)
export default {
methods: {
// asyncData({ req, params }) {
// return axios.get("http://localhost:8080/api/dfc/system/docbases")
// .then(res => {
// return { docbases: res.data };
// }).catch((e) => {
// error({ statusCode: 404, message: 'Not found' })
// })
// },
async asyncData ({ params }) {
const { data } = await axios.get('http://localhost:8080/api/dfc/system/docbases');
return { docbases: data }
}
},
head: {
title: "D2Rest"
}
};
</script>
我的 nuxt.config.js 是这样的:我用 true 和 false 尝试了 changeOrigin。你能帮我配置什么额外的东西吗?
axios: {
proxy: true,
},
env: {
baseUrl: process.env.BASE_URL || 'http://localhost:3000'
},
proxy: {
'/api/': {
target: 'http://localhost:8080/',
pathRewrite: { "^/api": "" },
changeOrigin: false,
prependPath: false
}
},
解决方案
根据您的配置,我假设您使用的是Nuxt Axios 模块...
问题似乎是您不必要地导入了 Axios,从而绕过axios
了nuxt.config.js
. Nuxt Axios 模块文档描述了它在组件中的用法:
export default {
async asyncData({ $axios }) {
const ip = await $axios.$get('http://icanhazip.com')
return { ip }
}
}
注意解构参数$axios
。使用该参数而不是导入您自己的实例axios
(即不要做import axios from 'axios'
),这与 Nuxt 配置的不一样。不需要其他导入$axios
。
代理网址
另一个问题是您在 URL 中明确请求代理地址,但这应该被排除在外:
// const { data } = await $axios.get('http://localhost:8080/api/dfc/system/docbases'); // DON'T DO THIS
const { data } = await $axios.get('/api/dfc/system/docbases');
推荐阅读
- sql - PostgreSql:使用横向连接的 Json 数组到行
- android - 选项卡式布局不会在滚动时折叠
- c++ - 使用英特尔 OpenMP 找到最佳线程数:只有 1 个线程比多线程有更好的结果
- gun - gun.map() 在根节点上的期望行为是什么?
- django - 为什么在保存时更新相关模型中的字段在 Django 中不起作用?
- java - SD 卡中的文件消失
- java - 如何使用 ANTLR 4 实现逻辑运算符(和,或)?
- c++ - what() const throw 是什么意思?
- javascript - 组件未在 reactJS 中呈现
- azure-devops - Azure Devops 构建管道在构建解决方案等步骤上失败