看来CORS错误在网络领域是众所周知的问题.但是我第一次try 了Flutter 网,我遇到了严重的错误.
下面的代码在iOS设备上运行时在应用程序版本中运行良好,但当我在Chrome上通过beta channel的web调试测试同一代码时,它遇到了CORS错误.
其他堆栈溢出解答解释了如何使用其项目的服务器端文件解决CORS问题.但我完全不知道什么是服务器,以及如何处理他们的答案.来自Chrome控制台的错误消息如下
[在'https://kapi.kakao.com/v1/payment/ready"起源"http://localhost:52700'已被CORS策略阻止:对飞行前请求的响应未通过访问控制判断:请求的资源上不存在'access control Allow Origin'头.]
所以,我只想用DART代码来解决上面的‘Access-Control-Allow-Origin Header’问题!下面的代码是我试图仅用我的main.dart解决这些问题的代码.
onPressed: () async {
var res =
await http.post('https://kapi.kakao.com/v1/payment/ready', encoding: Encoding.getByName('utf8'), headers: {
'Authorization': 'KakaoAK $_ADMIN_KEY',
HttpHeaders.authorizationHeader: 'KakaoAK $_ADMIN_KEY',
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "POST, GET, OPTIONS, PUT, DELETE, HEAD",
}, body: {
'cid': 'TC0ONETIME',
'partner_order_id': 'partner_order_id',
'partner_user_id': 'partner_user_id',
'item_name': 'cool_beer',
'quantity': '1',
'total_amount': '22222',
'vat_amount': '2222',
'tax_free_amount': '0',
'approval_url': '$_URL/kakaopayment',
'fail_url': '$_URL/kakaopayment',
'cancel_url': '$_URL/kakaopayment'
});
Map<String, dynamic> result = json.decode(res.body);
print(result);
},
尽管我实际上有大多数其他答案推荐的标题"Access-Control-Allow-Origin": "*"
,Chrome控制台还是打印了相同的错误消息.奇怪的是,在MobileApp版本中,相同的代码发出了成功的请求.所以我认为这只是Ffltter Web版本的问题.
希望有人能解决这个问题,只建议使用DART代码来解决我主机中的问题.DART!!感谢您阅读[: