百度地图地址解析异常
$.ajax({
type: "GET",
url: "http://api.map.baidu.com/geocoder?location=31.997909,118.768387&output=json&key=gfUh4SmP5gVW2qTdnYfgeyAK",
dataType:"jsonp",
success: function (result) {
alert(result);
},
error: function (result, status) {
alert("error");
}
});
直接在浏览器地址栏上敲http://api.map.baidu.com/geocoder?location=31.997909,118.768387&output=json&key=gfUh4SmP5gVW2qTdnYfgeyAK有返回结果;ajax跨域请求异常!
------解决方案--------------------ajax不能直接请求跨域页面,除非你用ie并且还没有发布网站可以,发布站后ie也无法跨域请求
百度这个借口不支持jsonp操作,你指定dataType为jsonp也没用
百度API提供了解码的类了,调用百度地图api来执行解析,这个是居于jsonp的,不会出现跨域错误
http://developer.baidu.com/map/reference/index.php?title=Class:%E6%9C%8D%E5%8A%A1%E7%B1%BB/Geocoder
getLocation(point:Point, callback:function[, options: LocationOptions]) none 对指定的坐标点进行反地址解析。如果解析成功,则回调函数的参数为GeocoderResult对象,否则回调函数的参数为null。(自 1.1 新增)