Dart/Flutter: Http 请求引发 XMLHttpRequest 错误
Dart/Flutter: Http request raises XMLHttpRequest error
我正在尝试制作带有 flutter 的 RSS reader,但程序引发了 XMLHttpRequest error
。
在我的测试中,我使用 web (Chrome) 作为我的目标平台。
我已经按照 this post.
中的建议通过添加 headers: {"Access-Control-Allow-Origin": "*"})
来解决这个问题
感谢您的帮助。
Future<RssFeed> fetchFeed() async {
try {
final response = await http.get(Uri.parse(url), headers: {"Access-Control-Allow-Origin": "*"});
return RssFeed.parse(response.body);
} catch (e) {
print(e);
return RssFeed(title: "Test");
}}
var feed = await fetchFeed();
完整错误日志:
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 910:28 get current
packages/http/src/browser_client.dart 69:22 <fn>
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/zone.dart 1685:54 runUnary
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 159:18 handleValue
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 766:44 handleValueCallback
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 795:13 _propagateToListeners
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 592: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 1288: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 334: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 339:39 dcall
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/html/dart2js/html_dart2js.dart 37301:58 <fn>
at Object.createErrorWithStack (http://localhost:49656/dart_sdk.js:5080:12)
at Function._throw (http://localhost:49656/dart_sdk.js:20337:18)
at Function.throwWithStackTrace (http://localhost:49656/dart_sdk.js:20334:18)
at async._AsyncCallbackEntry.new.callback (http://localhost:49656/dart_sdk.js:40851:18)
at Object._microtaskLoop (http://localhost:49656/dart_sdk.js:40708:13)
at _startMicrotaskLoop (http://localhost:49656/dart_sdk.js:40714:13)
at http://localhost:49656/dart_sdk.js:36191:9
flutter doctor 输出:
[√] Flutter (Channel stable, 2.10.1, on Microsoft Windows [Version 10.0.19042.1526], locale de-DE)
[√] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.0.5)
[√] Android Studio (version 2021.1)
[√] VS Code (version 1.63.2)
[√] Connected device (4 available)
[√] HTTP Host Availability
依赖关系:
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
url_launcher: ^6.0.20
http: ^0.13.0
flutter_staggered_grid_view: ^0.6.1
calendar_view: ^0.0.3
webfeed: ^0.7.0
string_similarity: ^2.0.0
sortedmap: ^0.5.1
感谢@Reza M,我可以找出问题所在。我在 Web 配置中缺少 '--disable-web-security'
。
1- 转到 flutter\bin\cache
并删除名为:flutter_tools.stamp
的文件
2- 转到 flutter\packages\flutter_tools\lib\src\web
并打开文件 chrome.dart.
3- 查找'--disable-extensions'
4- 添加 '--disable-web-security'
flutter 的说明来自 post.
1- 转到 flutter\bin\cache 并删除名为:flutter_tools.stamp
的文件
2- 转到 flutter\packages\flutter_tools\lib\src\web 并打开文件 chrome.dart。
3- 找到'--disable-extensions'删除并添加4.step
4- 添加'--disable-web-security'
我正在尝试制作带有 flutter 的 RSS reader,但程序引发了 XMLHttpRequest error
。
在我的测试中,我使用 web (Chrome) 作为我的目标平台。
我已经按照 this post.
中的建议通过添加 headers: {"Access-Control-Allow-Origin": "*"})
来解决这个问题
感谢您的帮助。
Future<RssFeed> fetchFeed() async {
try {
final response = await http.get(Uri.parse(url), headers: {"Access-Control-Allow-Origin": "*"});
return RssFeed.parse(response.body);
} catch (e) {
print(e);
return RssFeed(title: "Test");
}}
var feed = await fetchFeed();
完整错误日志:
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 910:28 get current
packages/http/src/browser_client.dart 69:22 <fn>
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/zone.dart 1685:54 runUnary
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 159:18 handleValue
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 766:44 handleValueCallback
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 795:13 _propagateToListeners
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 592: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 1288: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 334: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 339:39 dcall
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/html/dart2js/html_dart2js.dart 37301:58 <fn>
at Object.createErrorWithStack (http://localhost:49656/dart_sdk.js:5080:12)
at Function._throw (http://localhost:49656/dart_sdk.js:20337:18)
at Function.throwWithStackTrace (http://localhost:49656/dart_sdk.js:20334:18)
at async._AsyncCallbackEntry.new.callback (http://localhost:49656/dart_sdk.js:40851:18)
at Object._microtaskLoop (http://localhost:49656/dart_sdk.js:40708:13)
at _startMicrotaskLoop (http://localhost:49656/dart_sdk.js:40714:13)
at http://localhost:49656/dart_sdk.js:36191:9
flutter doctor 输出:
[√] Flutter (Channel stable, 2.10.1, on Microsoft Windows [Version 10.0.19042.1526], locale de-DE)
[√] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.0.5)
[√] Android Studio (version 2021.1)
[√] VS Code (version 1.63.2)
[√] Connected device (4 available)
[√] HTTP Host Availability
依赖关系:
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
url_launcher: ^6.0.20
http: ^0.13.0
flutter_staggered_grid_view: ^0.6.1
calendar_view: ^0.0.3
webfeed: ^0.7.0
string_similarity: ^2.0.0
sortedmap: ^0.5.1
感谢@Reza M,我可以找出问题所在。我在 Web 配置中缺少 '--disable-web-security'
。
1- 转到 flutter\bin\cache
并删除名为:flutter_tools.stamp
2- 转到 flutter\packages\flutter_tools\lib\src\web
并打开文件 chrome.dart.
3- 查找'--disable-extensions'
4- 添加 '--disable-web-security'
flutter 的说明来自
1- 转到 flutter\bin\cache 并删除名为:flutter_tools.stamp
的文件2- 转到 flutter\packages\flutter_tools\lib\src\web 并打开文件 chrome.dart。
3- 找到'--disable-extensions'删除并添加4.step
4- 添加'--disable-web-security'