我尝试在Axios

时间:2018-05-01 10:03:14

标签: javascript typescript google-places-api googleplacesautocomplete

我在TypeScript中设置了一个非常简单的类,使用Axios作为HTTP客户端访问Google的“放置自动完成”API,但请求失败并返回CORS错误。

import axios from 'axios'

export default class GoogleRequester {
  private apiKey: string = ''

  constructor (apiKey: string) {
    this.apiKey = apiKey
  }

  placesAutocomplete (query: string) {
    let requestString = `https://maps.googleapis.com/maps/api/place/queryautocomplete/json?key=${this.apiKey}&input=${encodeURIComponent(query)}`
    return axios.get(requestString)
  }
}
  

无法加载   https://maps.googleapis.com/maps/api/place/queryautocomplete/json?key=&安培;输入= FRE:   请求中不存在“Access-Control-Allow-Origin”标头   资源。因此不允许来源“http://localhost:8080”   访问。

如何做得好?

1 个答案:

答案 0 :(得分:0)

我自己偶然发现了这个问题。基本上,如果您从浏览器发出请求,则必须使用Google Maps Javascript API。对于其他Google图书馆(例如Google地方图书馆),您的请求必须来自服务器。 这个github问题实际上很好地解释了这一点:https://github.com/googlemaps/google-maps-services-js/issues/59#issuecomment-399626833