首页 > 解决方案 > Vue.js + Net Core 3.1 - 重定向 API 调用

问题描述

我正在处理的项目有问题。我有一个 Vue 客户端,它对我的​​后端进行 API 调用,它是用 .NET Core 3.1 编写的。这两个应用程序都部署在不同的服务器上。

现在的问题是我的后端服务器不允许我直接从浏览器进行 API 调用。所以我必须在客户端服务器上进行某种“重定向”才能访问我的 API。

例如:

如果我调用 backend_server/api/values 我会收到一个错误(防火墙)。

我认为我应该制作第二个 API 之类的东西,但我不确定如何处理这个问题。有人有这方面的经验吗?欢迎任何帮助!

亲切的问候

标签: vue.jsasp.net-core-webapi

解决方案


您可以在这里有多种选择

  1. 删除防火墙规则 - 这将允许您的 API 被浏览器访问。如果防火墙不是由您管理,则无法执行此操作

  2. 在防火墙中添加 IP 或端口例外规则 - 您可以在防火墙上允许特定端口或 IP,而不是停用服务器上的整个入站规则。再次,如果您可以控制防火墙

  3. 创建代理 API - 另一种方法是您可以创建一个中间件 API 来转发您的请求并充当代理。这将足以满足性能、资源、时间和妥协的安全性。我建议不要这样做,但在 .NET Core 中很容易实现

  4. 指定 CORS 策略 - 如果您的 Vue.js 和 API 来自同源 (IP),您可以在服务器中配置 CORS,这将限制对 API 的访问仅来自同源。这意味着只有www.google.com可以访问 GoogleAPI,同样。这将保护 API 免受其他来源的影响

  5. 通过 VPN 建立隧道 - 如果需要考虑安全性,请使用 VPN 服务来隧道化您的 API 请求。这对于使用您的 Web 服务的每个客户来说都是不可能的。

如果可能,最好的方法是在服务器上为您的应用程序打开特定规则。尽管可以完成,但在两者之间编写代理会有很多缺点。


推荐阅读