当报价在地址中时,奇怪的Google Maps v3地理编码行为

时间:2010-05-04 20:14:47

标签: javascript google-maps google-maps-api-3

查看我的test page

在页面上,单击左上角的“地理编码”按钮。如果您使用的是Firefox,geocoder.geocode()将使其状态等于ERROR(并在几秒钟后弹出警报)。在Internet Explorer(至少7个)中,一切正常,标记将添加到地图中。

如果从地址中删除引号(l'Assomption - > lAssomption),一切都在Firefox中正常运行。

现在我的问题是:报价如何“崩溃”Google Maps V3 API 仅限于Firefox

更新my report的状态已由Google更改为“已确认”。它似乎真的是一个V3 bug。虽然它已修复,但我会在地理编码之前从地址中删除引号(Google地图非常智能,可以在没有地址的情况下找到它)。

1 个答案:

答案 0 :(得分:1)

这很奇怪。当我在Firefox中尝试时,来自服务器的响应代码是403.这是Firebug中报告的API调用的测试链接

5415 boul. de l'Assomption, Montreal, Quebec, H1T2M4, Canada

所以,然后我在IE中加载它并启动Charles。这是IE生成的API调用的链接。

5415 boul. de l'Assomption, Montreal, Quebec, H1T2M4, Canada

看到区别? Firefox将'编码为%27,而IE则不编码。

结论

  1. Google API,Firefox和IE的原生函数或浏览器处理的差异可以不同方式处理URL中撇号的转义。
  2. Google的地理编码服务端点不知道如何处理URL编码的撇号,并抛出403 - Forbidden作为假阴性。
  3. 长话短说?看起来像一个错误。