【问题标题】:Getting json data with nomitatim, although ok with mapbox使用 nomitatim 获取 json 数据,虽然可以使用 mapbox
【发布时间】:2014-06-13 22:20:04
【问题描述】:

我正在使用反向地理编码 mapbox webservice 从纬度/经度坐标获取地址。

通过 mapbox (http://api.tiles.mapbox.com/v3/mykey/geocode/{mylong},{mylat}.json) 可以很好地使用 ajax 的回调函数来获取 json 数据。

对 openstreetmaps nominatim (http://nominatim.openstreetmap.org/reverse?format=json&lat={mylat}&lon={mylong}) 使用相同的方法,虽然我可以访问此 URL,但使用相同的方法 (ajax+callback+json) 总是返回一个 JavaScript 错误:

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

为什么 json 数据在 mapbox 中可以正常传递,但在 nominatim 中却不行?我相信它不能是 Apache 标头中的 Access-Control-Allow-Origin 参数。如果 mapbox 工作正常,则 nominatim 也应该工作。

为什么我要为 nominatim 烦恼,因为它有更多的参考坐标。

如果有任何帮助,我将不胜感激。

提前致谢,

米格尔

【问题讨论】:

    标签: javascript ajax json mapbox nominatim


    【解决方案1】:

    如果 mapbox 工作正常,nominatim 也应该可以工作。

    我不确定这个假设来自哪里:Mapbox 使用与 nominatim 完全不同的地理编码器 (carmen),以及不同的服务器、CDN 和其他一切。您看到的是 Nominatim 不支持 CORS,而 Mapbox 支持。如果您想为此使用 Nominatim,则需要使用 JSONP。

    【讨论】:

    • 是的,我知道。但是我已经使用了 JSONP 技术,就像在 nominatim 中推荐的那样,服务器总是返回 403 禁止
    【解决方案2】:

    对于地图框:

    来自 MapBox 的响应标头是 访问控制允许来源:*

    虽然 nominatim.openstreetmap.org 可能不会这样做,但你会看到 "因此不允许访问源 'localhost'"

    【讨论】:

      猜你喜欢
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-05
      • 2018-02-11
      相关资源
      最近更新 更多