flutter - 使用 Django 身份验证的 Flutter 到 Flutter Web 迁移
问题描述
我正在将我的颤振项目迁移到颤振网络并尝试联系我的后端 Django 服务器以验证用户帐户,但不断收到此错误:
Error: XMLHttpRequest error.
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 266:20 get current
packages/http/src/browser_client.dart 84:22 <fn>
dart-sdk/lib/async/zone.dart 1450:54 runUnary
dart-sdk/lib/async/future_impl.dart 143:18 handleValue
dart-sdk/lib/async/future_impl.dart 696:44 handleValueCallback
dart-sdk/lib/async/future_impl.dart 725:32 _propagateToListeners
dart-sdk/lib/async/future_impl.dart 519:7 [_complete]
dart-sdk/lib/async/stream_pipe.dart 61:11 _cancelAndValue
dart-sdk/lib/async/stream.dart 1229:7 <fn>
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 37204:58 <fn>
at Object.createErrorWithStack (http://localhost:5000/dart_sdk.js:4481:12)
at Object._rethrow (http://localhost:5000/dart_sdk.js:37397:16)
at async._AsyncCallbackEntry.new.callback (http://localhost:5000/dart_sdk.js:37391:13)
at Object._microtaskLoop (http://localhost:5000/dart_sdk.js:37223:13)
at _startMicrotaskLoop (http://localhost:5000/dart_sdk.js:37229:13)
at http://localhost:5000/dart_sdk.js:32851:9
这是被调用的api:
//获取通行证
Future userLogin(userdetails) async {
var url = '$_server/api/token/';
print(userdetails.values);
var results;
await http.post(url, body: json.encode(userdetails), headers: {
"Content-Type": "application/json"
}).then((http.Response response) {
final Map<String, dynamic> responseData = json.decode(response.body);
Token tkn = Token.fromJSON(responseData);
_accessTkn = tkn.access;
var refresh = tkn.refresh;
if (response.statusCode == 200) {
addToken(_accessTkn);
addRefresh(refresh);
tokenType = 'email';
results = 'valid';
} else {
results = 'invalid';
}
});
return results;
}
有人可以帮助完成此迁移步骤
解决方案
看起来 CORS 阻止了它,请尝试在您的 URL 前添加一个 CORS 代理。
在你的 URL https://cors-anywhere.herokuapp.com/前面添加这个
一旦您确认它正在工作,最好的做法是拥有自己的代理,因此使用以下方法创建一个:
推荐阅读
- tron - 如何使用 trongrid api 过滤器参数获取合同事件?
- css - 如何在所有屏幕中增加 div 高度?
- git - Github 上的双重用户名
- python - 有没有办法使用熊猫根据其他条件从两个不同的列和跨行对日期进行分组?
- java - KubernetesClientException:操作:[list] for kind:[Endpoints] with name: [null] in namespace: [null] failed
- flutter - DART:显示选定的联系人
- wireless - 客户端发送 ABORT 以响应 SCTP INIT ACK
- r - 如何对 R 数据表的所有行中的值使用条件
- macos - 使用 grep/awk/sed/etc 解析 mdimport 的输出。在 macOS 上?
- quickfix - 使用 QuikFix 解析 FIX 消息时无法找到组