【发布时间】:2019-03-23 11:57:44
【问题描述】:
我正在尝试使用材料在 Angular 6 中实现 google Places 模型列表,我正在调用 google Places API,但我遇到了如下所示的 CORS 问题,
无法加载https://maps.googleapis.com/maps/api/place/autocomplete/json?input=hy&language=en 对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问 Origin 'localhost:4200'。
我的代码如下,
<mat-form-field>
<mat-autocomplete #auto="matAutocomplete" (optionSelected)="selectedUserPlace($event)">
<mat-option *ngFor="let place of listOfPlaces" [value]="place.description">
{{place.description}}
</mat-option>
</mat-autocomplete>
<input type="text" aria-label="Number" required (input)="getUserPLaces($event.target.value)" matInput
[matAutocomplete]="auto">
<mat-form-field>
getUserPLaces(value: any) {
this.searchLocationService.loadUserPlaces(value, this.latitude, this.longitude).subscribe(
(data) => {
this.listOfPlaces = data['predictions'];
}
);
}
loadUserPlaces(key, latitude, longitude){
return this.httpClient.get(`https://maps.googleapis.com/maps/api/place/autocomplete/json?input=${key}&language=en`);
}
如何在这里解决 cors 问题,我知道通过禁用 chrome 安全功能和一些扩展,我们可以避免这个问题。由于我的应用程序将投入生产,我想通过代码解决这个问题。
任何解决方案将不胜感激。
【问题讨论】:
-
关键道具应该像
key=YOUR_API_KEY
标签: angular angular-material angular6 google-places-api