Flutter web http错误:XMLHttpRequest错误
Posted
技术标签:
【中文标题】Flutter web http错误:XMLHttpRequest错误【英文标题】:Flutter web http Error: XMLHttpRequest error 【发布时间】:2022-01-07 22:42:21 【问题描述】:当我尝试对 .net 后端执行简单的发布请求时,我一直在努力解决 http 请求问题。后端设置了 CORS,我经历了许多堆栈溢出帖子,试图解决这个问题,但它仍然给我同样的错误。当我在 SwaggerUI(与邮递员相同)上测试 API 时,一切正常。我不明白。我在这里缺少什么吗?谢谢。
代码:
import 'dart:convert';
import 'package:http/http.dart' as http;
abstract class ParentRemoteDataSource
Future<void> create(required Map<String, dynamic> parent);
class ParentRemoteDataSourceImpl implements ParentRemoteDataSource
final http.Client _client = http.Client();
final String _url = "http://localhost:5000/api/member/create";
@override
Future<void> create(required Map<String, dynamic> parent) async
final Uri uri = Uri.parse(_url);
final Map<String, String> headers = "Content-Type": "application/json";
final http.Response response = await _client.post(
uri,
headers: headers,
body: jsonEncode(parent),
);
print(response.body);
上面的代码在按下 UI 部分的按钮时执行。
发布请求的错误为:ERR_CERT_AUTHORITY_INVALID
,下面写着:Uncaught (in promise) Error: XMLHttpRequest error.
【问题讨论】:
ERR_CERT_AUTHORITY_INVALID 表示无法验证 HTTPS 证书,因此连接不安全,但是在您的代码中,您使用的是 HTTP 而不是 HTTPS。 这能回答你的问题吗? IN Flutter Web getting 'XMLHttpRequest' error while making HTTP call 这为我解决了:*** 【参考方案1】:您可以通过这种方式避免该错误:
创建自定义 httpOverrides:
class MyHttpOverrides extends HttpOverrides
@override
HttpClient createHttpClient(SecurityContext context)
return super.createHttpClient(context)
..badCertificateCallback = (X509Certificate cert, String host, int port)=> true;
然后覆盖main:
void main() async
HttpOverrides.global = new MyHttpOverrides();
...
【讨论】:
以上是关于Flutter web http错误:XMLHttpRequest错误的主要内容,如果未能解决你的问题,请参考以下文章
向本地服务器发送请求时出现 Flutter Web XMLHttpRequest 错误
Flutter dio不适用于flutter web中的post请求
在 WEB 中运行 Flutter:错误:XMLHttpRequest 错误