Flutter Web 中的 Amplify.Api.get 问题

问题描述 投票:0回答:1

我在几个地方问这个问题,希望比我有更多线索的人可以提供帮助:-)

在 Web 中运行时,我在使用 Flutter 应用程序中的 AdminQueries 函数时遇到问题。

这是我列出组中用户的功能:

Future<void> listAdmin() async {
    const path = "/listUsersInGroup";
    final query = {
      "groupname": "Admins",
    };
    const apiName = "AdminQueries";
    try {
      final restOperation = Amplify.API.get(
        path,
        queryParameters: query,
        apiName: apiName,
      );
      final response = await restOperation.response;
      print('GET call succeeded: ${response.decodeBody()}');
    } on ApiException catch (e) {
      print('GET call failed: $e');
    }
  }

如果我在 IOS 模拟器中运行该函数它可以工作。如果我在 Chrome(网络)中运行它,它会崩溃并出现以下错误:

Error: GET https://########.execute-api.ap-southeast-2.amazonaws.com/dev/listUsersInGroup?groupname=Admins failed: TypeError: Failed to fetch  packages/aws_common/src/js/fetch.dart 366:10 

这让我很困惑,所以我来这里看看是否有人有想法。我的应用程序的其余部分在网络上运行良好,所以这对我来说是一个症结所在。

干杯

flutter amplify-flutter
1个回答
0
投票

感谢@RichardHeap,他引导我在浏览器中检查 CORS,这就是我的问题。

作为 API 菜鸟 CORS 是我不知道的事情。我希望一旦我发布了我的应用程序并且不在我的测试环境(即本地主机)中运行它,CORS 的事情就不应该让我担心。

我发现这篇文章解决 Flutter Web API CORS 展示了如何在本地开发环境中禁用 CORS 检查,这很适合我。

希望这对遇到这个泡菜的其他人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.