在Flutter Web上进行HTTP调用时收到'XMLHttpRequest'错误 [英] IN Flutter Web getting 'XMLHttpRequest' error while making HTTP call
问题描述
我正在使用XAMPP控制面板,并使用本地服务器(如Apache端口号80),但是在颤抖的Web中,出现XMLHttpRequest错误,并且在移动设备中.相同的编码使用API提取数据,但未收到任何错误.当应用程序在Flutter-Web上运行时,如何使用API提取数据?
I am using XAMPP control panel and using a local server like Apache port no 80, but in flutter web getting XMLHttpRequest error and in mobile device. The same coding fetches data using API not getting any error. How to fetch data using API while app run on flutter-web?
错误
Launching lib\main.dart on Chrome in debug mode...
Syncing files to device Chrome...
Debug service listening on ws://127.0.0.1:56619/FsXy3a4ZrZg=
Debug service listening on ws://127.0.0.1:56619/FsXy3a4ZrZg=
Error: XMLHttpRequest error.
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/patch/core_patch.dart 906:28 get current
packages/http/src/browser_client.dart 84:22 <fn>
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/zone.dart 1450:54 runUnary
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 143:18 handleValue
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 696:44 handleValueCallback
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 725:32 _propagateToListeners
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/future_impl.dart 519:7 [_complete]
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/stream_pipe.dart 61:11 _cancelAndValue
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/async/stream.dart 1302:7 <fn>
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 324:14 _checkAndCall
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 329:39 dcall
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/html/dart2js/html_dart2js.dart 37312:58 <fn>
at Object.createErrorWithStack (http://localhost:5555/dart_sdk.js:4361:12)
at Object._rethrow (http://localhost:5555/dart_sdk.js:38189:16)
at async._AsyncCallbackEntry.new.callback (http://localhost:5555/dart_sdk.js:38183:13)
at Object._microtaskLoop (http://localhost:5555/dart_sdk.js:38015:13)
at _startMicrotaskLoop (http://localhost:5555/dart_sdk.js:38021:13)
at http://localhost:5555/dart_sdk.js:33518:9
后端PHP Web服务
Backend Side PHP Webservice
<?php
header("Access-Control_Allow_Origin: *");
header("Access-Control-Allow-Credentials: true");
header("Content-type:application/json;charset=utf-8");
header("Access-Control-Allow-Methods: GET");
include 'config.php';
$sql="select * from calinsert";
$result=mysqli_query($conn,$sql)or die("query failed");
if(mysqli_num_rows($result) >0){
$output=mysqli_fetch_all($result,MYSQLI_ASSOC);
echo json_encode($output);
}
else{
echo json_encode(array('message'=>'no record found','status'=>false));
}
?>
颤振边码
Future getdata()async {
final response = await http.get(
'http://localhost:80/web_service/calview.php',
headers: {
"Accept": "application/json",
"Access-Control_Allow_Origin": "*"
});
print(response.statusCode);
print(response.body);
}
推荐答案
在大多数使用Flutter API的情况下,在标头中添加 Access-Control-Allow-Origin
值可能会解决此问题.(注意:这将有助于访问本地或外部API)
In most cases of Flutter API use, add Access-Control-Allow-Origin
value in header might resolve the issue. (Note: This will help in access the local or external APIs)
header("Access-Control-Allow-Origin: *");
提示:您在上面的标题中有错字,请检查并更正.
Hint: you have typo in your above header, please check and correct.
这篇关于在Flutter Web上进行HTTP调用时收到'XMLHttpRequest'错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!