无法从颤振调用 Odoo API



我已经使用Controller在Odoo中创建了一个API。身份验证类型是公共的,因此访问此API不需要身份验证。当我在Postman或任何浏览器中调用这个API时,我没有问题。但是当我在Flutter中访问这个API时,我得到了一个错误。

这是Flutter代码

var response = await Dio().get('https://my-odoo-domain.com/api/sales');
print(response);

这是错误信息

Error: DioError [DioErrorType.response]: XMLHttpRequest error.
Source stack:
dart-sdk/lib/_internal/js_dev_runtime/patch/core_patch.dart 910:28       get current
packages/dio/src/dio_mixin.dart 473:35                                   fetch
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54       runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 123:5       _async
packages/dio/src/dio_mixin.dart 472:31                                   fetch
packages/dio/src/dio_mixin.dart 468:12                                   request
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54       runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 123:5       _async
packages/dio/src/dio_mixin.dart 438:33                                   request
packages/dio/src/dio_mixin.dart 55:12                                    get
packages/flutter_baru/screens/home_provider.dart 42:32                   fetchRoomMappings
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54       runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 123:5       _async
packages/flutter_baru/screens/home_provider.dart 18:33                   fetchRoomMappings
packages/flutter_baru/screens/home_provider.dart 14:11                   setup
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54       runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 123:5       _async
packages/flutter_baru/screens/home_provider.dart 12:21                   setup
packages/flutter_baru/screens/home_screen.dart 13:12                     setup
packages/flutter_baru/base/base_stateful.dart 19:14                      <fn>
packages/flutter/src/scheduler/binding.dart 1144:15                      [_invokeFrameCallback]
packages/flutter/src/scheduler/binding.dart 1089:9                       handleDrawFrame
packages/flutter/src/scheduler/binding.dart 862:7                        <fn>
dart-sdk/lib/_internal/js_dev_runtime/private/isolate_helper.dart 48:19  internalCallback
at Object.throw_ [as throw] (http://localhost:65437/dart_sdk.js:5067:11)
at http://localhost:65437/packages/dio/src/interceptors/log.dart.lib.js:1004:21
at _RootZone.runBinary (http://localhost:65437/dart_sdk.js:40445:59)
at _FutureListener.catchError.handleError (http://localhost:65437/dart_sdk.js:35374:33)
at handleError (http://localhost:65437/dart_sdk.js:35947:51)
at Function._propagateToListeners (http://localhost:65437/dart_sdk.js:35973:17)
at _Future.new.[_completeError] (http://localhost:65437/dart_sdk.js:35823:23)
at _SyncCompleter.new.[_completeError] (http://localhost:65437/dart_sdk.js:35279:36)
at _SyncCompleter.new.completeError (http://localhost:65437/dart_sdk.js:35203:29)
at onError (http://localhost:65437/dart_sdk.js:35043:49)
at _RootZone.runBinary (http://localhost:65437/dart_sdk.js:40445:59)
at _FutureListener.then.handleError (http://localhost:65437/dart_sdk.js:35374:33)
at handleError (http://localhost:65437/dart_sdk.js:35947:51)
at Function._propagateToListeners (http://localhost:65437/dart_sdk.js:35973:17)
at _Future.new.[_completeError] (http://localhost:65437/dart_sdk.js:35823:23)
at async._AsyncCallbackEntry.new.callback (http://localhost:65437/dart_sdk.js:35859:31)
at Object._microtaskLoop (http://localhost:65437/dart_sdk.js:40708:13)
at _startMicrotaskLoop (http://localhost:65437/dart_sdk.js:40714:13)
at http://localhost:65437/dart_sdk.js:36191:9

如何解决这个问题?

更新

我在Web平台上运行时出现此错误,但在Mobile&桌面平台我没有错误。我认为问题出在安全或类似CORS 的东西上

问题出在CORS上。我需要通过在终点中传递CORS参数来启用CORS

@http.route('/my/route', auth='public' ,cors='*')  
def my_route(self):