为什么我的 HTTP 请求在 Flutter 中不起作用?
Why won't my HTTP request in Flutter work?
我正在向我目前在本地托管的 API 发出 HTTP 请求。我现在收到这个错误。在函数中,'1' 将被打印但不会打印 '2'。
Future<http.Response> fetchUserData() async{
print('1');
final response = await http.get('http://localhost:5000/getUser/7890');
print('2');
return response;
}
这就是我调用函数的方式
var testVar = fetchUserData();
print(testVar);
我得到的错误是
Error: XMLHttpRequest error.
dart:sdk_internal 124039:30 get current
packages/http/src/browser_client.dart.lib.js 214:124 <fn>
dart:sdk_internal 37029:58 runUnary
dart:sdk_internal 32116:29 handleValue
dart:sdk_internal 32663:49 handleValueCallback
dart:sdk_internal 32701:17 _propagateToListeners
dart:sdk_internal 32535:25 [_complete]
dart:sdk_internal 37439:24 _cancelAndValue
dart:sdk_internal 18487:17 <fn>
dart:sdk_internal 4673:16 _checkAndCall
dart:sdk_internal 4678:17 dcall
dart:sdk_internal 104576:23 <fn>
at Object.createErrorWithStack (http://localhost:53647/dart_sdk.js:4477:12)
at Object._rethrow (http://localhost:53647/dart_sdk.js:37464:16)
at async._AsyncCallbackEntry.new.callback (http://localhost:53647/dart_sdk.js:37458:13)
at Object._microtaskLoop (http://localhost:53647/dart_sdk.js:37290:13)
at _startMicrotaskLoop (http://localhost:53647/dart_sdk.js:37296:13)
想知道是否有人发现错误。
如果您 运行 您的 Flutter 应用程序在 emulator/mobile 设备中,但您 运行 您的 PC 上的本地 Web 服务器,localhost
不是要使用的正确主机名。在将指向移动设备本身的移动设备(例如)上。
尝试用您机器的(网络)IP 地址替换 localhost
(并确保任何防火墙都允许连接)。
我发现了问题。这是 API 方面的问题。
如果您使用的是 Flask,请将这些行添加到 API 的顶部。
from flask_cors import CORS
CORS(app=app)
我正在向我目前在本地托管的 API 发出 HTTP 请求。我现在收到这个错误。在函数中,'1' 将被打印但不会打印 '2'。
Future<http.Response> fetchUserData() async{
print('1');
final response = await http.get('http://localhost:5000/getUser/7890');
print('2');
return response;
}
这就是我调用函数的方式
var testVar = fetchUserData();
print(testVar);
我得到的错误是
Error: XMLHttpRequest error.
dart:sdk_internal 124039:30 get current
packages/http/src/browser_client.dart.lib.js 214:124 <fn>
dart:sdk_internal 37029:58 runUnary
dart:sdk_internal 32116:29 handleValue
dart:sdk_internal 32663:49 handleValueCallback
dart:sdk_internal 32701:17 _propagateToListeners
dart:sdk_internal 32535:25 [_complete]
dart:sdk_internal 37439:24 _cancelAndValue
dart:sdk_internal 18487:17 <fn>
dart:sdk_internal 4673:16 _checkAndCall
dart:sdk_internal 4678:17 dcall
dart:sdk_internal 104576:23 <fn>
at Object.createErrorWithStack (http://localhost:53647/dart_sdk.js:4477:12)
at Object._rethrow (http://localhost:53647/dart_sdk.js:37464:16)
at async._AsyncCallbackEntry.new.callback (http://localhost:53647/dart_sdk.js:37458:13)
at Object._microtaskLoop (http://localhost:53647/dart_sdk.js:37290:13)
at _startMicrotaskLoop (http://localhost:53647/dart_sdk.js:37296:13)
想知道是否有人发现错误。
如果您 运行 您的 Flutter 应用程序在 emulator/mobile 设备中,但您 运行 您的 PC 上的本地 Web 服务器,localhost
不是要使用的正确主机名。在将指向移动设备本身的移动设备(例如)上。
尝试用您机器的(网络)IP 地址替换 localhost
(并确保任何防火墙都允许连接)。
我发现了问题。这是 API 方面的问题。 如果您使用的是 Flask,请将这些行添加到 API 的顶部。
from flask_cors import CORS
CORS(app=app)