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



我正试图查询在本地服务器上运行的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);
});
}

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)

我目前收到了相同的错误消息,这非常具有误导性。它似乎只是表明请求由于任何原因而失败。

要调试它,请使用Chrome的DevTools(Ctrl+Shift+C(,转到"网络"并在那里进行检查。您几乎可以肯定地看到,请求的某些部分不是您想要的,请求失败了。

编辑:也许这是一个CORS问题,那么这个好答案可能会有所帮助:不;访问控制允许来源';当试图从REST API 获取数据时,请求的资源上存在头

如果上述解决方案不起作用,可能只是您运行的设备有问题(就像我的情况一样(

在任务管理器中确保退出所有chrome进程

然后

flutter clean

然后

flutter run -d chrome

这为我解决了问题。

响应看起来怎么样?我遇到了类似的问题,并在响应{"访问控制-允许原始":"*"}中使用此信息进行了修复

return ('Any response body', 200, {'Access-Control-Allow-Origin': '*'})

所以我也认为这也是服务器端的问题。当URL发布在浏览器中或使用失眠等工具时,它可能会起作用,但flutter需要这些信息。

对于我的案例,我忘记在本地启动我的laravel后端项目。

相关内容

  • 没有找到相关文章

最新更新