Flutter Web Http post 请求无法使用 http 包工作

问题描述

Flutter web 上发出http post 请求失败。我正在使用 http 包进行请求,这里是我的代码

http.post(
      'http://x.x.x.x:5000',headers: <String,String>{
        "Access-Control-Allow-Origin": "*",// required for CORS support to work
        "Access-Control-Allow-Credentials":
            'true',// required for cookies,authorization headers with HTTPS
        "Access-Control-Allow-Headers":
            "Origin,Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token","Access-Control-Allow-Methods": "POST,OPTIONS"
      },body: jsonEncode(<String,String>{
        'title': 'title',}),)

错误:XMLHttpRequest 错误。 dart-sdk/lib/_internal/js_dev_runtime/patch/core_patch.dart 906:28 获取最新信息 包/http/src/browser_client.dart 84:22 dart-sdk/lib/async/zone.dart 1450:54 runUnary dart-sdk/lib/async/future_impl.dart 143:18 handleValue dart-sdk/lib/async/future_impl.dart 696:44 handleValueCallback

注意:在 chrome 开发工具中,我可以看到 2 个请求通过一个是我的 post 请求,我不知道另一个。另一个总是以 200 状态成功并记录在服务器上,但这不是我的发布请求。

解决方法

在浪费时间寻找解决方案后,我发现我没有在服务器端实现 CORS。我使用的是 Flask 服务器,添加 CORS 很快就解决了这个问题。