VueJS axios CORS Google Api

Posted

技术标签:

【中文标题】VueJS axios CORS Google Api【英文标题】: 【发布时间】:2018-06-03 19:09:20 【问题描述】:

我尝试从 API Google Places 获取数据

axios.get('https://maps.googleapis.com/maps/api/place/details/json?placeid=...&key=mykey')
    .then(response => 
      commit('SET_REVIEWS',  list: response.data )
    , error => 
      console.log(error)
    )                                                                                              

然后我有这个错误 我知道服务器端 CORS 的错误,但我该怎么办?

【问题讨论】:

唯一受支持的使用 Places API 端点的方法是使用官方文档中概述的 Places 库。见***.com/questions/43443836/… 和***.com/questions/44336773/… 【参考方案1】:

在我的项目中,我使用 NuxtJS 并找到了解决方案。 您必须在服务器端(nodeJS)而不是客户端发出请求。 如下所示,方法 fetch 允许您执行此操作,并且有效https://nuxtjs.org/guide/vuex-store#the-fetch-method

【讨论】:

如何在前端解决这个问题?我不使用服务器端渲染。 在前端您应该使用 Google Maps javascript API 的地点库:developers.google.com/maps/documentation/javascript/places【参考方案2】:

只需在您自己的服务器上创建和调用网络服务,然后再调用谷歌的网络服务。

您的 web 服务的主要代码在 php 中可能如下所示:

$url = 'https://maps.googleapis.com/maps/api/place/details/json?key=' . $key . '&placeid=' . $place_id; echo json_decode(file_get_contents($url), true);

【讨论】:

以上是关于VueJS axios CORS Google Api的主要内容,如果未能解决你的问题,请参考以下文章

Vue、Axios 和 Google Maps Place API CORS 错误 [重复]

CORS 块 Laravel + VueJS Axios

AllowAnyOrigin Cors 不工作 Axios Vuejs

使用 Spring Boot(VueJS 和 Axios 前端)禁止发布 403 帖子

VueJs Axios Access-Control-Allow-Origin CORS 错误

Laravel VueJS,Axios 看不到 CORS 标头,但 Postman 和浏览器可以