如何修复向特定 Web 服务器发出 http 请求的 flutter web http 错误
how to fix flutter web http error making http request to a particular web server
我正尝试在我的 flutter web 应用程序中向 000webhost 发出 HTTP 请求,如下所示。第一种方法和第二种方法一样,我只是改了URL。但是,第一个有效,但第二个无效。有人建议添加更多 headers,但我不知道要添加哪个 headers。
// This method WORKS
getMethod()async{
print("IN GET ....");
String theUrl = 'https://jsonplaceholder.typicode.com/todos';
var res = await http.Client().get(Uri.encodeFull(theUrl),headers: {"Accept":"application/json"});
//var res = await http.get(Uri.encodeFull(theUrl),headers: {"Accept":"application/json"});
var responsBody = json.decode(res.body);
print(responsBody);
return responsBody;
}
// This DOES NOT WORK
getMethod()async{
print("IN GET ....");
String theUrl = 'https://funholidayshotels.000webhostapp.com/fetchData.php';
var res = await http.Client().get(Uri.encodeFull(theUrl),headers: {"Accept":"application/json"});
//var res = await http.get(Uri.encodeFull(theUrl),headers: {"Accept":"application/json"});
var responsBody = json.decode(res.body);
print(responsBody);
return responsBody;
}
纠结了一段时间后,我发现问题出在服务器端
我必须在 000webhost 上将 Header add Access-Control-Allow-Origin "*"
添加到 .htaccess
,这为我解决了这个问题
您还可以将下面的代码添加到您的 php 文件中,如下所示:
<?php
require('connection.php');
header("Access-Control-Allow-Origin: *");
....
code goes here
....
?>
我在 LocalHost 上试过这个并且有效
我正尝试在我的 flutter web 应用程序中向 000webhost 发出 HTTP 请求,如下所示。第一种方法和第二种方法一样,我只是改了URL。但是,第一个有效,但第二个无效。有人建议添加更多 headers,但我不知道要添加哪个 headers。
// This method WORKS
getMethod()async{
print("IN GET ....");
String theUrl = 'https://jsonplaceholder.typicode.com/todos';
var res = await http.Client().get(Uri.encodeFull(theUrl),headers: {"Accept":"application/json"});
//var res = await http.get(Uri.encodeFull(theUrl),headers: {"Accept":"application/json"});
var responsBody = json.decode(res.body);
print(responsBody);
return responsBody;
}
// This DOES NOT WORK
getMethod()async{
print("IN GET ....");
String theUrl = 'https://funholidayshotels.000webhostapp.com/fetchData.php';
var res = await http.Client().get(Uri.encodeFull(theUrl),headers: {"Accept":"application/json"});
//var res = await http.get(Uri.encodeFull(theUrl),headers: {"Accept":"application/json"});
var responsBody = json.decode(res.body);
print(responsBody);
return responsBody;
}
纠结了一段时间后,我发现问题出在服务器端
我必须在 000webhost 上将 Header add Access-Control-Allow-Origin "*"
添加到 .htaccess
,这为我解决了这个问题
您还可以将下面的代码添加到您的 php 文件中,如下所示:
<?php
require('connection.php');
header("Access-Control-Allow-Origin: *");
....
code goes here
....
?>
我在 LocalHost 上试过这个并且有效