【发布时间】:2020-07-25 00:10:04
【问题描述】:
在我的 Flutter-Web 应用程序中,我尝试使用 flutter_google_places 包获取地址。我正在尝试简单的代码来获取自动完成地址字段(MyTextField 只是一个自定义的文本字段):
final addressField = MyTextField(
controller: _addressController,
labelText: 'Indirizzo',
readOnly: true,
onTap: () async {
await PlacesAutocomplete.show(
context: context,
apiKey: kGoogleApiKey,
mode: Mode.overlay,
onError: (error){print('ERROR: $error');},
);
},
);
当我运行应用程序并向字段中插入内容时,我没有得到任何结果。但是我收到了这个错误(从托管上的检查控制台捕获,我在本地也收到了同样的错误):
Access to XMLHttpRequest at 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=h&key=**MY-API-KEY**' from origin 'https://**MY-HOSTING**.firebaseapp.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
我读到这是一个服务器端问题,我尝试像这样修改 firebase.json:
{
"hosting": {
"public": "build/web",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
],
"headers": [ {
"source" : "**",
"headers" : [ {
"key" : "Access-Control-Allow-Origin",
"value" : "*"
} ]
}]
}
}
部署了,但也遇到了同样的错误。
感谢任何有关解决该问题(本地和托管)的提示。
【问题讨论】:
标签: cors google-places-api firebase-hosting flutter-web