首页 > 解决方案 > 使用 axios 进行内部 API 调用

问题描述

我有两个节点实例,在端口 5000 上使用 MongoDB 的 Express 后端和在端口 8080 上使用 VueJs 的前端。

我的目标是直接从前端服务器进行 API 调用,这样用户就无法访问数据库。

目前我有这个配置可以在本地主机上完美运行,但不能从任何其他机器进行白访问。

Home.vue 上使用的组件:

import AxiosModule from "@/middleware/axiosmodule.js";
(...)
 methods:{
        /* eslint-disable no-console */
        fetchData(){
            AxiosModule
                .get("/data")
                .then(response => {
                    this.values = response.data;
                    console.log(response.data);
                })
                .catch(err => {
                    console.log(err);
                });
        },

Axios 模块:

import axios from 'axios';

export default axios.create({
    baseURL: "http://localhost:5000/api/",
    headers:{
        "Content-type": "application/json",
    },
});

在 localhost:5000/api/data 有一个对象数组。

从本地网络访问:8080 时,控制台中有关于连接到:5000/api/data 的“ERR_CONNECTION_REFUSED”消息,我认为这表明 API 的实际调用来自客户端,而不是服务器(我只有 8080在我的路由器上打开端口)。

因此,据我了解,我有两个选择:在内部进行 API 调用并阻止对端口 5000 的访问或实施某种授权

当然,如果你有更好的方法,请告诉我。谢谢是提前。

标签: node.jsapivue.jsaxiosfrontend

解决方案


推荐阅读