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"),
),
您或许应该打印它们,而不是打印一些无用的通用文本。
我遇到一个问题:我将 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"),
),
您或许应该打印它们,而不是打印一些无用的通用文本。