【发布时间】:2020-10-05 04:25:00
【问题描述】:
我正在将我的 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;
}
有人可以帮助完成这个迁移步骤
【问题讨论】:
-
尝试使用
.catchError捕获任何错误。您从请求中收到什么响应?
标签: flutter flutter-web