How to use CORS to implement JavaScript Google Places API request

前端 未结 2 2104
旧巷少年郎
旧巷少年郎 2020-11-28 14:52

I really do NOT understand how I\'m supposed to make this work:

var requestURL = \'https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJN1t_tD         


        
2条回答
  •  有刺的猬
    2020-11-28 15:31

    @rd3n already answered about why to use Google Maps' SDK, but if you really need to use the API instead of SDK on a web app (reuse code, for exemple), you can bypass CORS using proxy parameter from Webpack's DevServer.

    const GMAPS_PLACES_AUTOCOMPLETE_URL = (
      process.env.NODE_ENV === 'production'
        ? 'https://maps.googleapis.com/maps/api/place/autocomplete/json'
        : 'place-api' // on development, we'll use the Webpack's dev server to redirect the request
    
    const urlParams = new URLSearchParams([
      ...
    ])
    
    const response = await fetch(
      `${GMAPS_PLACES_AUTOCOMPLETE_URL}?${urlParams}`,
      { method: 'GET' }
    )
    

    And on your webpack.config.js...

    module.exports = {
      devServer: {
        proxy: {
          '/place-api': {
            target: 'https://maps.googleapis.com/maps/api/place/autocomplete/json',
            changeOrigin: true,
            pathRewrite: { '^/place-api': '' }
          }
        }
      }
    }
    

提交回复
热议问题