Flutter - API 状态 200 但显示错误

Flutter - API status 200 but shows error caught

我遇到一个问题:我将 flutter 与 node.js API 集成在一起。调试器显示我收到了 2 个请求。 1 是 GET,1 是 OPTIONS。对于 GET 请求,成功状态为 200,带有 return 正文数据,但对于 OPTIONS 请求,成功状态为 200,但没有数据。我的当前页面显示小部件错误。

[API file]
- seen like this returned the data
[https://i.stack.imgur.com/xWmKn.png][1]
result
[https://i.stack.imgur.com/pGblN.png][1]

[GET request]
- Status success = 200 return data
[https://i.stack.imgur.com/trL1P.png][1]

[OPTIONS request]
- Status success = 200 but no data
[https://i.stack.imgur.com/H8hG7.png][1]

我对 Flutter 和 nodejs 还是个新手。我按照这里的教程 https://youtu.be/rXLwX3uUYjA?list=PL7zgwanvi8_MIQwPHbhCL3xulZIGxabKo

错误来自widget_home_categories.dart

Widget _categoriesList(WidgetRef ref) {
final categories = ref.watch(
  categoriesProvider(
    PaginationModel(page: 1, pageSize: 10),
  ),
);

return categories.when(
  data: (list) {
    return _buildCategoryList(list!);
  },
  error: (_, __) => const Center(
    child: Text("ERR1a"),
  ),
  loading: () => const Center(child: CircularProgressIndicator()),
);
}

您看到的是一个 CORS 请求,因为您在浏览器中 运行 这个,浏览器会为您执行此操作。如果您 运行 您的代码作为应用程序或桌面应用程序,您将不会看到这一点,因为这样一来,您的应用程序代码就不必经过任何层来为您做它认为“正确”的事情。

但是,您的实际调用似乎已被 CORS 调用批准并通过并成功返回数据。

所以我们能给你的唯一帮助就是不要忽略你的编译器给你的帮助,而是用它来找出问题所在。我很确定,其中一个参数将包含答案:

error: (_, __) => const Center(
  child: Text("ERR1a"),
),

您或许应该打印它们,而不是打印一些无用的通用文本。