无法从我的 Flutter Web 访问 RestAPI (FastAPI) - 跨源请求被阻止

2023-12-15

我有一个 Linux 服务器。我有两个 Docker 容器。在第一个容器中,我部署 Flutter Web,在另一个容器中,我使用 FastAPI() 运行 RestAPI。

我将两个 Docker 容器设置在同一个网络中,因此通信应该可以正常工作。我还设置了起源origins = ['*'](通配符)。我反向代理我的 Flutter 网络nginx来自 Linux 服务器。我还包括*.crt and *.key使用 nginx 到我的 Flutter Web。

现在,显然,因为我的 Flutter Web 应用程序已经https,我做不到http来电。当我尝试拨打电话时https,我得到错误(来自 catch):"XMLHttpRequest error",在浏览器控制台中我得到:

跨源请求被阻止:同源策略不允许读取 远程资源位于https://172.21.0.2:8070/。 (原因:CORS 请求 没有成功)。状态代码:(空)。

(172.21.0.2是Docker的ip,8070是RestApi运行的端口)

我是 RestAPI 世界的新手。我通常只开发前端。但我想尝试一下。所以,如果我表达了一些错误的话,我很抱歉。我几天来一直在寻找,但找不到解决我的问题的方法。我将不胜感激任何帮助! (如果我遗漏了一些信息或者您需要更多信息,请随时在评论中写下,我会立即更新问题!)

谢谢你!


我解决了我的问题。如果将来有人遇到同样的问题,这里就是答案。 我的错误是调用服务器http/https,同时在同一个(Docker)网络中。所以我改变了:

final Uri tokenUri = Uri.https(urlList[index]['url']!, '');

to

final Uri tokenUri = Uri.parse('${urlList[index]['url']!}/');

花了一周的时间寻找这样一个简单的解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法从我的 Flutter Web 访问 RestAPI (FastAPI) - 跨源请求被阻止 的相关文章

随机推荐

  • 导入错误:模块存在时没有命名模块

    我通常运行 python2 但我正在玩 python3 现在我很困惑为什么会收到此错误 当我运行命令时 test web events py in the tests目录 我得到 Traceback most recent call las
  • 来自 post 请求的数据

    var pload function ctrl func var dataa post index php ctrl func function data dataa data return dataa var bind function
  • 如何解决从服务启动应用程序时发生的错误“未找到默认活动”?

    我需要开始我的安卓应用 using Service并开始后Activity从那Service 首先我创建了申请样本通过提及堆栈溢出 我创建启动接收器开始上课Service public class StartReceiver extends
  • 将参数传递给 addEventListener 中调用的函数

    如果我像这样调用 addEventListener 中的函数 document querySelector elem addEventListener click expand Expand 函数接受参数 我怎样才能将这些参数传递给它 我试
  • 如何将二维数组从 C 传递到 Python

    我想将二维数组从 C 传递给 python 我怎样才能使用Py BuildValue and PyEval CallObject 例如 我可以使用以下代码将字符串从 C 传递到 python pModule PyImport ImportM
  • iPhone - 双击故障安全方法

    我试图检测视图上的双击 但是当双击到来时 第一次点击会触发 TouchesBegan 上的操作 因此 在检测双击之前 始终首先检测到单击 我怎样才能以只检测双击的方式做到这一点 我无法使用 OS 3 x 手势 因为我必须使其与旧操作系统版本
  • 如何清除javafx条形图中添加的文本?

    我在条形顶部添加一些文本 每个条形的值 它正在工作 但问题是我想在每次更新图表时删除此文本 事实上 更新数据后文本仍然保留 For the first chart since there is no previous data it s d
  • 如何使用 linq to sql 的文本框编辑/更新数据库中的记录?

    我使用 linq to sql 的 Visual Basic 2008 Express Edition 进行数据库操作 例如编辑记录 我没有使用任何 SQL Server 但我只是使用 Visual Basic 2008 Express 中
  • 如何获取数据表上某个类的行索引

    我想获取具有 selected 类的行的索引 我怎样才能做到这一点 这失败了 var datatable mytableid var selectedclass selected var table datatable dataTable
  • 以编程方式获取另一个进程的父进程pid?

    我尝试谷歌 但发现getppid 它获取的父pidcurrent过程 我需要类似的东西getppid some other pid 有这样的事吗 基本上获取某个进程的 pid 并返回父进程的 pid 我认为最简单的事情是打开 proc 并解
  • Bash - 从文件填充二维数组

    我知道这可能很容易 但我对此非常挣扎 问题描述 我有一个文本文件 其坐标格式为 1 2 3 7 其中第一列 x 和第二列 y 坐标 现在我想使用文件中的此坐标填充大小为 N x M 的二维数组 方法是为文件和 中指定的点打印 X 否则 示例
  • Python 3 不带括号打印

    The print以前在Python 2中是一条语句 现在在Python 3中变成了一个需要括号的函数 Python 3 中是否有抑制这些括号的方法 也许通过重新定义打印功能 所以 而不是 print Hello stack over fl
  • 在 .NET 中处理令人难以置信的大量数据

    我正在努力解决以下问题投影网但我一直遇到一些问题 第一个是在 a 中存储大量元素的问题List
  • 有没有一种简单的方法来删除字符串中的多个空格?

    假设这个字符串 The fox jumped over the log 转变为 The fox jumped over the log 在不拆分和进入列表的情况下实现此目的最简单的 1 2行 是什么 gt gt gt import re g
  • 如何定义函数的返回类型/OutputType

    为什么下面的类型会改变 function SomeFunction SomeParameter return SomeParameter 我想我需要设置一个返回类型 但是如何设置呢 一个例子是使用 NewFolder Join Path C
  • XSLT 转换从元素创建新的 qname

    我需要转换 xml 输出中的数据表 如下所示 C1 列 1 c2 列 2 等
  • Anaconda Navigator 不显示新环境

    当我在 Anaconda Navigator 中添加新环境时 它将创建该环境 但不会在 UI 中显示 我可以通过提示看到环境 所以我知道它已经创建了 它只是不会在用户界面中显示它 我需要做什么才能让它显示在用户界面中 请通过运行更新 Ana
  • 如何在 ClearCase 中按文件扩展名删除文件元素?

    我有很多xxx cmd位于多个文件夹中的文件 例如child1 child2 child3等 他们有一个父文件夹parent 是否有一个cleartool命令可以在parent删除所有的文件夹 cmd所有子文件夹中的文件 不容易 因为在执行
  • 枚举当前 Visual Studio 项目中的所有文件

    我正在尝试编写一个简单的 Visual Studio 2012 扩展 我已经生成了扩展模板 并且可以从工具菜单中打开一个对话框 我想枚举当前打开的项目中的所有文件 然后根据一些规则过滤它们 我正在寻找的是返回 IEnumerable 的代码
  • 无法从我的 Flutter Web 访问 RestAPI (FastAPI) - 跨源请求被阻止

    我有一个 Linux 服务器 我有两个 Docker 容器 在第一个容器中 我部署 Flutter Web 在另一个容器中 我使用 FastAPI 运行 RestAPI 我将两个 Docker 容器设置在同一个网络中 因此通信应该可以正常工