1

我在生产框中收到此错误消息:

Google Maps API 服务器拒绝了您的请求。请求中指定的“sensor”参数必须设置为“true”或“false”。

当浏览器点击时:

<script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&key=mykey&sensor=true">

我看到浏览器调用:

http:// 地图。谷歌 。com /maps?file=api&v=2&key=mykey&sensor=true

然后它向我显示错误消息。

我复制它正在点击的 url 并将其粘贴到浏览器中,它会下载正确的 js,而不是带有警报消息的那个。

我创建了一个示例页面并在我的本地开发盒和测试服务器中对其进行了测试;它呈现得非常棒。测试箱: http: //www.probit.co/Prototypes/GPS/MapTest.html

我将相同的文件放在生产框中,它向我抛出了消息。制作箱: http: //www.hondutrack.com/rastreo/MapTest.html

为什么它不能在生产中工作?

4

1 回答 1

0

回答我自己的问题:

尽管消息显示传感器参数存在问题,但我得出的结论是这是一个域问题,谷歌地图服务的某种禁令。

就像上面详述的那样,呈现地图的同一个 html 被放置在三个不同的域中,除了生产域之外,它们都按预期工作。我用提琴手查看发送的请求

<script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&key=mykey&sensor=true">

原始命中,返回带有错误警报的 js。我进行了重播,并用一个发明但不存在的域 (www.hondutrack1.com) 更改了 http 标头中的 referer 属性,它的作用就像一个魅力。

因此,为了恢复服务,我们购买了该域,在 apache 服务器中设置 mod_rewrite,在根 .htaccess 文件中创建了重写,现在一切正常。

我知道这是一种解决方法,有点脏,但至少该服务已启动并正在运行。

于 2013-08-28T03:58:29.817 回答