首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤振DIO库XMLHttpRequest错误网

颤振DIO库XMLHttpRequest错误网
EN

Stack Overflow用户
提问于 2021-10-02 09:08:59
回答 3查看 8.3K关注 0票数 5

我曾在颤振DIO图书馆工作过。它在我的Android应用程序上运行得很好,但在Web上出现了错误。Error: DioError [DioErrorType.response]: XMLHttpRequest error.

如果我尝试了与http相同的url,它在Web上可以正常工作。我的Dio图书馆代码

代码语言:javascript
复制
Dio dio = Dio();
dio.options.method = "POST";
dio.options.headers["Access-Control-Allow-Origin"] = "*";
    dio.options.headers["Access-Control-Allow-Credentials"] = true;
    dio.options.headers["Access-Control-Allow-Headers"] =
        "Origin,Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,locale";
    dio.options.headers["Access-Control-Allow-Methods"] =
        "GET, HEAD, POST, OPTIONS";
var response = await dio
        .post('http://45.79.124.182/app_php/PagarGuru_test/requestAdd.php');

错误日志

代码语言:javascript
复制
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/core_patch.dart 908:28   get current
packages/dio/src/dio_mixin.dart 819:20                                                                            assureDioError
packages/dio/src/dio_mixin.dart 678:13                                                                            _dispatchRequest
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 60:31   <fn>
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/zone.dart 1692:54                                 runBinary
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 175:22                           handleError
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 779:46                           handleError
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 800:13                           _propagateToListeners
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 610:5                            [_completeError]
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 666:7                            callback
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/schedule_microtask.dart 40:11                     _microtaskLoop
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/schedule_microtask.dart 49:5                      _startMicrotaskLoop
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 166:15  <fn>
    at Object.throw_ [as throw] (http://localhost:58438/dart_sdk.js:5374:11)
    at http://localhost:58438/packages/dio/src/interceptors/log.dart.lib.js:1390:21
    at _RootZone.runBinary (http://localhost:58438/dart_sdk.js:40508:58)
    at _FutureListener.catchError.handleError (http://localhost:58438/dart_sdk.js:35445:33)
    at handleError (http://localhost:58438/dart_sdk.js:36033:51)
    at Function._propagateToListeners (http://localhost:58438/dart_sdk.js:36059:17)
    at _Future.new.[_completeError] (http://localhost:58438/dart_sdk.js:35905:23)
    at _SyncCompleter.new.[_completeError] (http://localhost:58438/dart_sdk.js:35363:36)
    at _SyncCompleter.new.completeError (http://localhost:58438/dart_sdk.js:35286:29)
    at onError (http://localhost:58438/dart_sdk.js:35131:60)
    at _RootZone.runBinary (http://localhost:58438/dart_sdk.js:40508:58)
    at _FutureListener.then.handleError (http://localhost:58438/dart_sdk.js:35445:33)
    at handleError (http://localhost:58438/dart_sdk.js:36033:51)
    at Function._propagateToListeners (http://localhost:58438/dart_sdk.js:36059:17)
    at _Future.new.[_completeError] (http://localhost:58438/dart_sdk.js:35905:23)
    at async._AsyncCallbackEntry.new.callback (http://localhost:58438/dart_sdk.js:35944:31)
    at Object._microtaskLoop (http://localhost:58438/dart_sdk.js:40808:13)
    at _startMicrotaskLoop (http://localhost:58438/dart_sdk.js:40814:13)
    at http://localhost:58438/dart_sdk.js:36279:9

我试过其他论坛的答案,但没有帮助。

我的整个项目都是基于Dio图书馆的。

我该怎么办?

EN

回答 3

Stack Overflow用户

发布于 2022-06-20 11:24:14

我也遇到了同样的问题。但经过一番研究,我找到了一个可行的解决方案:

  1. 转到flutter\bin\cache
  2. 找到一个名为flutter_tools.stamp的文件,将其压缩到压缩文件或其他任何文件以保留副本,然后删除原始文件。
  3. 转到flutter\packages\flutter_tools\lib\src\web并在编辑器中打开chrome.dart文件。
  4. 查找线'--disable-extension'
  5. 将其注释掉并替换为--disable-web-security

快乐编码

如果您看到这个,您使用的是一个不受支持的注释行标志:-禁用-web-安全。稳定性和安全性将受到影响‘在您的浏览器上假设它。它只在你的本地环境中这样做,不需要担心。

票数 5
EN

Stack Overflow用户

发布于 2022-11-07 20:57:15

代码语言:javascript
复制
flutter run -d edge  --web-renderer html

代码语言:javascript
复制
flutter run -d chrome --web-renderer html
票数 0
EN

Stack Overflow用户

发布于 2022-02-04 07:23:59

错误是由同源政策引起的。但是,此策略仅适用于从客户端向服务器发出的请求。解决方案是创建一个运行在服务器中的函数,该函数将发出请求,等待其完成并返回任何相关数据。调用这个函数而不是dio。

我使用了firebase并用云函数解决了这个问题。

代码语言:javascript
复制
import axios from "axios"; // install by running **npm install axios** inside your functions folder

export const serverRequest = functions.https.onCall(async (url, context)=> {
  const response = await axios.get(url as string).then(({data})=> data);
  return response;
});

上面的函数是get请求的示例,在您的示例中,只需将其更改为post请求,将数据和URL作为参数传递,它就会工作。

票数 -5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69415505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档