django - 如何删除 Flutter 中的 "XMLHttpRequest error"? (Django 后端,Flutter 前端)

标签 django flutter api http

我在将 Django 后端连接到网络上的 Flutter 前端时遇到问题。我尚未在 Android 或 iOS 上进行测试。

我希望能够进行 API 调用并让它返回一个我可以转换为 json 的响应。但是,无论我尝试过什么,它都会抛出错误。我试过将其转换为 https 请求,但无济于事。

如果有人需要 Django 方面的任何东西,请告诉我

这是错误的样子:

Error: XMLHttpRequest error.
dart-sdk/lib/_internal/js_dev_runtime/patch/core_patch.dart 909:28                get current

packages/http/src/browser_client.dart 71:22                                       <fn>

dart-sdk/lib/async/zone.dart 1613:54 runUnary dart-sdk/lib/async/future_impl.dart 155:18 handleValue dart-sdk/lib/async/future_impl.dart 707:44 handleValueCallback dart-sdk/lib/async/future_impl.dart 736:13 _propagateToListeners dart-sdk/lib/async/future_impl.dart 533:7 [_complete] dart-sdk/lib/async/stream_pipe.dart 61:11 _cancelAndValue dart-sdk/lib/async/stream.dart 1219:7 dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 324:14 _checkAndCall dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 329:39 dcall dart-sdk/lib/html/dart2js/html_dart2js.dart 37307:58

at Object.createErrorWithStack (http://localhost:63593/dart_sdk.js:5362:12)
at Object._rethrow (http://localhost:63593/dart_sdk.js:39509:16)
at async._AsyncCallbackEntry.new.callback (http://localhost:63593/dart_sdk.js:39503:13)
at Object._microtaskLoop (http://localhost:63593/dart_sdk.js:39335:13)
at _startMicrotaskLoop (http://localhost:63593/dart_sdk.js:39341:13)
at http://localhost:63593/dart_sdk.js:34848:9

这是一段代码

import 'package:http/http.dart' as http;

var url2 = 'https://0.0.0.0:8809/test/';
              try{
                response = await http.get(Uri.parse(url2));
                print(response.body);
              }
              catch(exception){
                print('could not access');
                    response = await http.get(Uri.parse(url2));
              }

            },

我让它打印出错误。

最佳答案

这可能是因为您的后端没有启用 CORS 造成的。发生这种情况是因为您的服务器和前端存在于不同的 IP 上(即使您在本地主机上工作,端口仍然不同)。

要解决此问题,您只需添加参数以在响应 header 中启用 CORS。有一些包可用作中间件,因此您不必在每个响应中都添加它。请引用以下问题:

How can I enable CORS on Django REST Framework

关于django - 如何删除 Flutter 中的 "XMLHttpRequest error"? (Django 后端,Flutter 前端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68608710/

相关文章:

python - 我应该如何发送Post请求来创建具有外键关系的对象

html - 如何在 Django 中创建命名 anchor 以深入到页面的特定部分

python - 为什么我的服务的其他部分不能轻松使用 tastypie?我在 tastypie 资源和我的核心服务中有重复的代码

python manage.py runserver 没有名为 django.core.management 的模块

javascript - 你如何手动热重载 Flutter

Delphi REST API 帖子示例

python - 当我执行 Trades Record.objects.create(**traderecord_data) 时,会引发 TypeError

flutter - 有没有办法阻止手势在 flutter 中冒泡?

git - VS Code 中文件名旁边的 "A "是什么意思?

javascript - 如何仅获取一次变量中的对象总数?