Flutter Web 在进行 http 调用时收到“XMLHttpRequest”错误

Dar*_*ide 7 flutter-web

我正在尝试查询在本地服务器中运行的 Apache Drill,但出现以下错误。请帮助我,我也尝试在项目的 /web 文件夹中添加“.htaccess”,但它不起作用......谢谢!

http
    .post(
  'http://localhost:8047/query.json',
  headers: <String, String>{
    'Content-Type': 'application/json',
    'Access-Control-Allow-Headers':
        'Origin, Content-Type, Cookie, X-CSRF-TOKEN, Accept, Authorization, X-XSRF-TOKEN, Access-Control-Allow-Origin',
    'Access-Control-Expose-Headers': "" 'Authorization, authenticated',
    'Access-Control-Allow-Origin': '*',
    'Access-Control-Allow-Methods': 'GET,POST,OPTIONS,DELETE,PUT',
    'Access-Control-Allow-Credentials': 'true',
  },
  body: jsonEncode(<String, String>{
    'queryType': 'SQL',
    'query':
        'select * from dfs.`C:/Users/drill/data/*.parquet`'
  }),
)
    .then((_response) {
  setState(() {
     response = jsonDecode(_response.body);
  });
}
Run Code Online (Sandbox Code Playgroud)
Error: XMLHttpRequest error.
    C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 264:20      get current
packages/http/src/browser_client.dart 84:22                                                                                    <fn>
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/zone.dart 1450:54                                              runUnary
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 143:18                                        handleValue
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 696:44                                        handleValueCallback
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 725:32                                        _propagateToListeners
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 519:7                                         [_complete]
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/stream_pipe.dart 61:11                                         _cancelAndValue
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/stream.dart 1300:7                                             <fn>
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 324:14  _checkAndCall
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 329:39  dcall
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/html/dart2js/html_dart2js.dart 37287:58                              <fn>
    at Object.createErrorWithStack (http://localhost:62659/dart_sdk.js:4348:12)
    at Object._rethrow (http://localhost:62659/dart_sdk.js:37892:16)
    at async._AsyncCallbackEntry.new.callback (http://localhost:62659/dart_sdk.js:37886:13)
    at Object._microtaskLoop (http://localhost:62659/dart_sdk.js:37718:13)
    at _startMicrotaskLoop (http://localhost:62659/dart_sdk.js:37724:13)
Run Code Online (Sandbox Code Playgroud)

Sea*_*les 5

我目前有同样的错误消息,而且非常具有误导性。它似乎只是表明请求因某种原因失败。

\n

要调试它,请使用 Chrome 的 DevTools (Ctrl+Shift+C),转到“网络”并检查那里。您几乎肯定会看到请求的某些部分不是您想要的,并且请求失败。

\n

编辑:也许这是一个 CORS 问题,那么这个很好的答案可能会有所帮助:在尝试从 REST API 获取数据时,请求的资源\xe2\x80\x94 上没有“Access-Control-Allow-Origin”标头

\n