Javascript 我可以从网页(而不是服务器)调用google maps directions API吗?

Javascript 我可以从网页(而不是服务器)调用google maps directions API吗?,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我是一名长期的程序员(C、Python、FORTRAN),但这是我第一次涉足javascript和任何web领域,所以我在不断学习 因此,前面的主要问题是:我可以从笔记本电脑上的简单网页的脚本部分使用GoogleMapsDirections API,还是需要从服务器调用它 我有一个API密钥,并且成功地使用了API中被称为函数的部分(映射、几何体)。我正在尝试使用谷歌地图方向API,据我所知,您必须通过URL和HTTP GET使用该API。下面是我的代码构建的示例URL: “我的钥匙” 如果我将

我是一名长期的程序员(C、Python、FORTRAN),但这是我第一次涉足javascript和任何web领域,所以我在不断学习

因此,前面的主要问题是:我可以从笔记本电脑上的简单网页的脚本部分使用GoogleMapsDirections API,还是需要从服务器调用它

我有一个API密钥,并且成功地使用了API中被称为函数的部分(映射、几何体)。我正在尝试使用谷歌地图方向API,据我所知,您必须通过URL和HTTP GET使用该API。下面是我的代码构建的示例URL:

“我的钥匙”

如果我将该URL粘贴到地址栏中,它就会工作。我得到了一份带方向信息的文件。如果我从我正在构建的简单网页上的脚本部分执行它,我得到的响应是:

请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“null”

我在stackoverflow和web上的其他地方进行了一些搜索,我发现:

在该页面上,我检查以确保支持withCredentials,然后将withCredentials设置为true。这并没有改变结果。显然,API是有效的,所以我现在想知道是否必须从web服务器而不是从简单的网页来绕过跨域限制。我希望不必设置服务器,因为这是我个人使用的一次性服务,但也许我别无选择


顺便说一句,有人知道为什么方向API是通过URL调用的,而不是像其他许多函数一样作为javascript函数调用的吗?

回答主要问题,是的。你完全可以在你的网页中使用GoogleMapDirections API。要快速轻松地开始,请遵循以下步骤。那么

  • 单击JAVASCRIPT+HTML版本,复制整个代码并将其粘贴到文本编辑器中,并将其保存为HTML文件

  • 启动您自己的本地服务器(如node.js)。不要忘记获取浏览器API密钥并设置HTTP引用器(示例
    http://localhost:4567
    )在谷歌开发者控制台中,否则您将收到错误

  • 在本地服务器上运行html文件(示例
    http://localhost:4567/myprojfolder/samplewebfile.html

  • 您可以使用所有GoogleMapsJavaScriptAPI示例执行此操作。如果您对设置node.js服务器感到好奇,那么在线上有大量的资源。

    对于JavaScript,最好使用。这帮助我在没有服务器的情况下解决了这个问题

    问题在于,与例如的不同,您没有提供JS XSS功能,如服务器端
    访问控制允许源:
    响应头或JSONP功能。也许这甚至是Google的一个bug,因为我觉得很奇怪,一个“Web服务”API服务器允许JS XSS,另一个不允许


    请参见

    您不使用谷歌地图JavaScript API v3有什么原因吗?根据我的阅读和测试,您必须拥有付费/高级帐户才能使用该服务。这是我第一次尝试的。如果有一种使用免费钥匙的方法,我很乐意这样做。你在哪里看到的?你打算使用更多的“免费”配额吗?我会尝试在我看到的地方找到网络参考,并将其发布在这里。我确实从一次尝试中得到了一个错误返回,我解释了一个错误以确认它。我将尝试复制它,并将其发布。至于配额,这不应该是一个问题。最坏情况下的测试运行总共需要40个查询。最坏情况下的完整运行,我只需要(正确地)执行一次,最坏情况下会有900个查询,更有可能是一半或更少。它表示:考虑到当前的交通状况,duration_in_traffic表示该路段的总持续时间。仅当以下所有条件均为真时,才会返回持续时间\u in_流量:请求包含有效的Google Maps API Premium Plan客户端ID。但是,我现在看到,我可以获得不考虑免费令牌流量的持续时间。这可能足以满足我的需要,这很有帮助。我不知道有不同类别的证书。然而,在第2步中,您说启动服务器,这是我问题的核心(尽管我可能没有说清楚)。到目前为止,我所做的只是在浏览器中打开.html文件,没有服务器在我的终端上运行。根据你的指示,听起来好像需要一台服务器?