Fetch 已被 JavaScript 中的 CORS 策略阻止(Google 云平台)

问题描述 投票:0回答:1

我遇到了有关向 Google Platform API 发出 http 请求的问题。这是示例 https:https://maps.googleapis.com/maps/api/directions/json?key={my api key}&origin=And%C4%9Bl&destination=Milovice,benatecka-vrutice&mode=transit&transit_mode=train |电车|地铁|公交车&transit_routing_preference=less_walking

虽然此 https 在任何浏览器中都能完美运行并返回 JSON 格式,但当我尝试在 javascript 应用程序中获取它时,它总是被 CORS 策略阻止。

我认为这与我的 Google Studio 项目设置有关,因为当我尝试从 javascript 中的其他一些 API 获取数据时,它工作得很好。我尝试阅读一些有关此问题的文章,但找不到任何有用的内容。

我将不胜感激任何帮助! 丹尼尔

javascript google-cloud-platform httprequest google-directions-api
1个回答
0
投票

CORS 策略是浏览器中的一种标准机制,负责服务器如何与客户端共享数据。在您的情况下,您的应用程序中会出现此错误,因为当请求来自浏览器应用程序(例如通过

fetch
调用)时,Google Platform API 的服务器不允许与其他人共享数据。

为什么您的 https 调用可以在任何浏览器中工作? 如果您从 fetch 调用中获取请求的 url,并直接在浏览器而不是应用程序中请求该 URL,则不存在 CORS 策略。

您可以做的是创建一个代理服务器,它管理您对 Google Platform API 的提取调用并将数据发送到您的客户端应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.