Javascript 使用Nomitim获取json数据,但使用mapbox可以

Javascript 使用Nomitim获取json数据,但使用mapbox可以,javascript,ajax,json,mapbox,nominatim,Javascript,Ajax,Json,Mapbox,Nominatim,我正在使用反向地理编码mapboxwebservice从lat/long坐标中获取地址 通过mapbox(http://api.tiles.mapbox.com/v3/mykey/geocode/{mylong},{mylat}.json)使用ajax的回调函数获取json数据,效果很好 对openstreetmaps提名使用相同的方法(http://nominatim.openstreetmap.org/reverse?format=json&lat={mylat}&lon={mylong})

我正在使用反向地理编码mapboxwebservice从lat/long坐标中获取地址

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

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

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

为什么json数据在mapbox中传递得很好,而不是在Namingm中?我相信它不能是Apache头中的Access Control Allow Origin参数。如果mapbox工作正常,提名也应该工作

为什么我要为提名而烦恼,因为它有更多的参考坐标

我将感谢任何帮助

提前感谢,

米格尔

如果mapbox工作正常,提名也应该工作

我不确定这一假设来自何方:Mapbox使用的地理编码器(carmen)与Namingm完全不同,还使用了不同的服务器、CDN和其他一切。你看到的是Namingm不支持CORS,而Mapbox支持。如果要为此使用Nagnim,则需要使用JSONP。

对于MapBox:

映射框中的响应标头为 访问控制允许来源:*

虽然namitm.openstreetmap.org可能不会这样做,所以你会看到
“因此不允许访问源“localhost”

是的,我知道。但是我已经使用了JSONP技术,就像在Namingm中推荐的那样,服务器总是返回403