当我的顶级脚本退出时,我正在寻找一种清理混乱的方法.
特别是如果我想使用set -e
,我希望后台进程会在脚本退出时死掉.
我正在尝试通过XMLHttpRequest从Firebase存储下载文件,但资源上没有设置Access-Control-Allow-Origin,因此无法实现.有没有办法在存储服务器上设置此标头?
(let [xhr (js/XMLHttpRequest.)]
(.open xhr "GET" url)
(aset xhr "responseType" "arraybuffer")
(aset xhr "onload" #(js/console.log "bin" (.-response xhr)))
(.send xhr)))
Run Code Online (Sandbox Code Playgroud)
Chrome错误消息:
XMLHttpRequest无法加载 https://firebasestorage.googleapis.com/[EDITED] 请求的资源上没有"Access-Control-Allow-Origin"标头.原产地" 的http://本地主机:3449 "因此不允许访问.
我无法通过 API 调用从其他域加载 flutter web 中的网络图像。收到这个错误
试图从另一个域加载图像?在以下位置找到答案: https: //flutter.dev/docs/development/platform-integration/web-images ImageCodecException:无法加载网络图像。
有什么帮助吗?
我正在尝试制作一个带有 flutter 的 RSS 阅读器,但该程序引发了XMLHttpRequest error
.
在我的测试中,我使用网络(Chrome)作为我的目标平台。
\n感谢您的帮助。
\n Future<RssFeed> fetchFeed() async {\ntry {\n final response = await http.get(Uri.parse(url), headers: {"Access-Control-Allow-Origin": "*"});\n return RssFeed.parse(response.body);\n} catch (e) {\n print(e);\n return RssFeed(title: "Test");\n }}\n\n var feed = await fetchFeed();\n
Run Code Online (Sandbox Code Playgroud)\n完整错误日志:
\nError: XMLHttpRequest error.\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-\n\nsdk/lib/_internal/js_dev_runtime/patch/core_patch.dart 910:28 get current\npackages/http/src/browser_client.dart 69:22 <fn>\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/zone.dart 1685:54 runUnary\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 159:18 handleValue\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 766:44 handleValueCallback\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 795:13 _propagateToListeners\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 592:7 [_complete]\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/stream_pipe.dart 61:11 _cancelAndValue\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/stream.dart 1288:7 <fn>\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 334:14 _checkAndCall\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 339:39 dcall\nC:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/html/dart2js/html_dart2js.dart 37301:58 <fn>\n\n\n at Object.createErrorWithStack (http://localhost:49656/dart_sdk.js:5080:12)\n at Function._throw (http://localhost:49656/dart_sdk.js:20337:18)\n at Function.throwWithStackTrace …
Run Code Online (Sandbox Code Playgroud) 注意:事实证明,这与颤振无关,而与我将 API 网关设置为 Lambda 代理这一事实有关
我试图从 Flutter Web 应用程序访问 API 端点,每次它出错并给我以下错误。
获取传感器数据时出错:DioError [DioErrorType.RESPONSE]:XMLHttpRequest 错误。
我知道这里有几个关于 SO(像这个和这个)的问题在讨论这个问题,解决方案似乎是在服务器端启用 CORS 支持。我正在使用 AWS API 网关来构建 API,我按照这些说明从我的 API 启用 CORS 支持。这是我在 API 网关控制台中的 CORS 设置。
“Access-Control-Allow-headers”中的文本是
'内容类型,X-Amz-日期,授权,X-Api-Key,X-Amz-Security-Token'
在 API 网关上启用 CORS 似乎没有帮助,当我尝试点击 API 时,我的 flutter Web 应用程序仍然遇到相同的错误。
有趣的是,如果我从 chrome 中点击 API(即在浏览器上粘贴 API URL 并点击回车),API 工作得非常好。只有当我尝试从 Flutter Web 应用程序访问 API 时它才会失败。
问题:如何在我的 API 网关中启用 CORS 支持,以便我的 Flutter Web 应用程序可以使用 API?
我有一个大问题,使我的项目迟到 我有 CROS 问题阻止了我的请求 我无法纠正它,我在我的 .htacess 中添加了以下几行,但它不起作用我无法理解
跨域请求被阻止:同源策略不允许在https://maps.googleapis.com/maps/api/place/autocomplete/json ...nents=country:fr&key=MY_KEY读取远程资源。(原因:缺少 CORS 标头“Access-Control-Allow-Origin”)
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.kosmos-digital.com/$1 [R,L]
Rewritecond %{HTTP_HOST} ^kosmos-digital.com$
Rewriterule ^(.*) https://www.kosmos-digital.com/$1 [QSA,L,R=301]
<ifModule mod_headers.c>
SetEnvIf Origin "http(s)?://(www.kosmos-digital.com|www.maps.googleapis.com)$" AccessControlAllowOrigin=$0
Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Header always set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
</ifModule>
Run Code Online (Sandbox Code Playgroud)
我不认为它来自我的代码,但我会把它放在下面:
try {
await Dio().get<String>("https://maps.googleapis.com/maps/api/place/autocomplete/json?input=28%20avenue%20pierre%20corneille&language=fr&components=country:fr&key=MY_KEY").then((e) {
print(e.data);
}).catchError(print);
// Map<String, dynamic> dataAsJson = await HttpUtils.getForJson(url, headers: headers);
// print(dataAsJson.toString());
} catch(e) {
print(e.toString());
}
Run Code Online (Sandbox Code Playgroud) 您将如何运行命令并使用Flutter / Dart传递一些自定义参数,以便随后可以在main()
调用中访问它们,例如:
flutter run -device [my custom arg]
Run Code Online (Sandbox Code Playgroud)
因此,我可以通过以下方式访问它:
void main(List<String> args) {
print(args.toString());
}
Run Code Online (Sandbox Code Playgroud)
谢谢。
我的 API 在应用程序中工作正常,但如果我尝试通过 Web 调用 API,则 API 无法工作
API 是通过 dio 实现的 ( https://pub.dev/packages/dio )
欢迎您提出改进,并提前感谢您提供解决方案和建议。
我有一个托管在使用 CanvasKit 渲染的 Firebase Hosting 上的 Flutter Web 项目,但我无法使其加载 Xano CDN 中托管的外部图像或加载 GooglePlaces API 结果(自动编译)。我阅读了许多其他解决方案(例如这个或这个或这个),但没有一个有效。我还在Google Cloud 上配置了 CORS。
这是我的firebase.json
文件:
{
"hosting": {
"public": "build/web",
"ignore": [
"firebase.json",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
],
"headers": [
{
"source": "*",
"headers": [
{
"key": "Access-Control-Allow-Origin",
"value": "*"
}
]
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
在 index.html 中,我在标签之前附加了以下脚本</body>
:
<!-- Firebase -->
<script type="module">
// Import …
Run Code Online (Sandbox Code Playgroud) 如何将中间件添加到架构管道,为每个请求添加默认HTTP头?
我正在尝试开发一个 flutter 应用程序,该应用程序将 http 请求发送到托管在 000webHost 上的远程 php 文件。
当我为桌面构建 Flutter 应用程序时,我设法检索了信息,一切都很好。但是,由于另一个问题(视频播放器不适用于桌面....),我想回到网络构建。
我查看了几个帖子,但没有发现与我类似的错误。有人说由于跨源请求 (CORS) 导致错误,但在我看来这不是这个问题。
当我尝试使用 http.post 检索我的数据时,出现以下错误:
browser_client.dart:87 POST https://<myadresse>.000webhostapp.com/<nameFile>.php net::ERR_HTTP2_PROTOCOL_ERROR
Run Code Online (Sandbox Code Playgroud)
Uncaught (in promise) Error: XMLHttpRequest error.
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/core_patch.dart 906:28 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 1446:54 runUnary
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 150:18 handleValue
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 703:44 handleValueCallback
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 732:32 _propagateToListeners
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 526: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 1302: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 37312:58 <fn>
at Object.createErrorWithStack (errors.dart:249)
at Object._rethrow (async_patch.dart:200)
at async._AsyncCallbackEntry.new.callback (zone.dart:1171)
at Object._microtaskLoop (schedule_microtask.dart:41)
at _startMicrotaskLoop (schedule_microtask.dart:50) …
Run Code Online (Sandbox Code Playgroud) 在 flutter web debuggin 上打开一个没有 chrome 扩展的新窗口。但我的项目必须通过扩展进行消息传递。如何防止 Chrome 扩展被禁用?