我正试图查询在本地服务器上运行的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后端项目。