https://developers.google.com/places/web-service/details
我收到CORS错误。好吧我试过在角度使用jsonp并得到另一个错误。
Uncaught SyntaxError:意外的令牌:
我认为这是因为gmaps api不支持jsonp。 Querying Google Places API using jQuery
但是如何通过angular
从API获取地点详细信息?
代码
const params = new URLSearchParams();
params.append('key', 'MYAPIKEY');
params.append('placeid', placeId);
params.append('callback', 'JSONP_CALLBACK');
const url = 'https://maps.googleapis.com/maps/api/place/details/json';
return this.jsonp.get(url, {search: params});
或
getPlaceDetails(placeId: string) {
const httpParams = new HttpParams()
.append('key', 'MYAPIKEY')
.append('placeid', placeId);
const url = 'https://maps.googleapis.com/maps/api/place/details/json';
return this.http.get<PlaceDetail>(url, {params: httpParams}).map(c => c.result);
}
如果我使用cors chrome extension
,则第二种方法有效答案 0 :(得分:0)
如果您使用新的Http客户端,请尝试以下方法:
return this.http.get<PlaceDetail>(url, {params: httpParams, observe: 'response'}).map(c => {
console.log(c);
return c.result;
});
这将允许您查看_body
字段中包含的响应,并执行某些操作。