我可以从网页(而不是服务器)调用谷歌地图方向API吗
Can I call the google maps directions API from a web page (as opposed to a server)?
我是一名长期程序员(C、Python、FORTRAN),但这是我第一次涉足javascript和任何web,所以我正在快速学习。
因此,前面的主要问题是:我可以使用笔记本电脑上简单网页的脚本部分的谷歌地图方向API吗?还是需要从服务器调用?
我有一个API密钥,我已经成功地使用了API中被称为函数(Map,Geometry)的部分。我正在尝试使用谷歌地图方向API,据我所知,你必须通过URL和HTTPGET使用它。以下是我的代码构建的示例URL:
https://maps.googleapis.com/maps/api/directions/json?origin=45.0491174%2C-93.46037330000001&目的地=45.48282401917292%2C-93.46037330000001&key="我的钥匙"
如果我把那个URL粘贴到地址栏,它就可以工作了。我收到了一份包含路线信息的文件。如果我在我正在构建的一个简单网页上的脚本部分中执行它,我得到的响应是:
请求的资源上不存在"Access Control Allow Origin"标头。因此,不允许访问源"null"。
我在stackoverflow和网络上的其他地方做了一些搜索,我发现了这个:
http://www.html5rocks.com/en/tutorials/cors/
根据该页面,我检查以确保支持withCredentials,然后将withCredential设置为true。这并没有改变结果。显然,API是有效的,所以我现在想知道我是否必须在web服务器上而不是在简单的网页上这样做,以绕过跨域限制。我希望避免设置服务器,因为这是我个人使用的一次性服务器,但也许我别无选择?
顺便说一句,有人知道为什么API方向是通过URL调用的,而不是像其他许多函数那样作为javascript函数调用的吗?
对于JavaScript,请更好地使用Web->Maps JavaScript API。这帮助我在没有服务器的情况下解决了这个问题。
问题是您的Web Services->Directions API与Web Services->Geolocations API不同,它不提供JS XSS功能,如服务器端access-control-allow-origin: *
响应头或JSONP功能。也许这甚至是谷歌的一个bug,因为我觉得很奇怪,一个"Web服务"API服务器允许JS XSS,而另一个不允许。
请参阅https://stackoverflow.com/a/26198407/3069376
要回答主要问题,请选择"是"。你当然可以在你的网页中使用GoogleMapDirectionneneneba API。要让您快速轻松地开始,请单击此链接。然后,
-
单击JAVASCRIPT+HTML版本,复制整个代码并将其粘贴到文本编辑器中,然后将其保存为HTML文件。
-
启动您自己的本地服务器(如node.js)。不要忘记获取浏览器API密钥,并在Google开发者控制台中设置HTTP refferer(例如
http://localhost:4567
),否则会出现错误。 - 在本地服务器上运行html文件(例如
http://localhost:4567/myprojfolder/samplewebfile.html
)
您可以使用所有Google Maps JavaScript API示例来完成此操作。如果你对设置node.js服务器很感兴趣,网上有很多资源。
- 调用谷歌地图路线服务时未捕获的异常
- 为什么谷歌地图API's方法未从RequireJS中正确调用
- 调用一个“;默认瓦片”;在谷歌地图中
- 在谷歌地图示例中为 Ajax 调用制作一个 JavaScript 闭包
- 无法调用方法'应用'关于为jquery谷歌地图插件设置方向的未定义
- 谷歌地图api v3 zoom_changed事件在fitBounds调用后激发了两次
- 我可以从网页(而不是服务器)调用谷歌地图方向API吗
- 无法从 ajax 调用中检索谷歌地图标记坐标
- Javascript:如何在Ajax调用后显示带有标记的谷歌地图
- 使用jQuery进行谷歌地图api调用时出现问题(JSON未返回)
- 谷歌地图变量的范围和调用方法
- 谷歌地图磁贴叠加 - 避免调用磁贴时出现 404 错误
- 取消之前对谷歌地图地理编码方法的调用
- 如何使用javascript调用谷歌地图的特定位置
- 从另一个API调用谷歌地图信息窗口
- 当自动填写地址时,调用谷歌地图的位置ID
- 调用谷歌地图api时出错;谷歌url缩短API在同一程序
- &;谷歌没有定义&;在Chrome浏览器中调用谷歌地图api出错
- JQuery,谷歌地图:在初始化之前不能调用谷歌地图上的方法
- 使用PhantomJS调用谷歌地图Geocode